OSDN Git Service

Basic ABI changes for passing structs by value in 64-bit Darwin.
authorshebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Nov 2004 20:28:58 +0000 (20:28 +0000)
committershebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Nov 2004 20:28:58 +0000 (20:28 +0000)
commit03a4d19d18abc4b001e08d3d6ba6d8af76579c49
treec5f0272bf5c341b9e9b100e210c59c9a41ee1a0e
parentf1515a392ca91f9ec9883bd625cdb6f874e0efb3
    Basic ABI changes for passing structs by value in 64-bit Darwin.
        * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag.
        (rs6000_override_options): Set it for 64-bit Darwin.
        (rs6000_parse_abi_options): Add testing options to change it.
        (rs6000_return_in_memory): Test whether the type is one
        that can be passed in registers.
        (darwin64_function_arg_advance): New.
        (function_arg_advance): Call it, plus add recursion depth
        argument and test when counting off arguments.
        (rs6000_darwin64_function_arg): New.
        (function_arg): Call it.
        (setup_incoming_varargs): Add argument to function_arg_advance.
        (rs6000_darwin64_function_value): New.
        (rs6000_function_value): Call it.
        * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg.
        * config/rs6000/rs6000-protos.h: Update decl of
        function_arg_advance.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90629 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h