Commit dfafc897 by Franz Sirl Committed by Richard Henderson

Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

        * rs6000.c (rs6000_va_list): Type is an array.
        (rs6000_va_start): Don't doubly adjust for varargs.
        (rs6000_va_arg): Evaluate long long GPR adjustment.

From-SVN: r28408
parent 54dd04be
1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* rs6000.c (rs6000_va_list): Type is an array.
(rs6000_va_start): Don't doubly adjust for varargs.
(rs6000_va_arg): Evaluate long long GPR adjustment.
Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
* rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
......
......@@ -1566,14 +1566,17 @@ typedef struct rs6000_args
#define SETUP_INCOMING_VARARGS(CUM,MODE,TYPE,PRETEND_SIZE,NO_RTL) \
setup_incoming_varargs (&CUM, MODE, TYPE, &PRETEND_SIZE, NO_RTL)
/* If defined, is a C expression that produces the machine-specific
code for a call to `__builtin_saveregs'. This code will be moved
to the very beginning of the function, before any parameter access
are made. The return value of this function should be an RTX that
contains the value to use as the return of `__builtin_saveregs'. */
/* Define the `__builtin_va_list' type for the ABI. */
#define BUILD_VA_LIST_TYPE(VALIST) \
(VALIST) = rs6000_build_va_list ()
#define EXPAND_BUILTIN_SAVEREGS() \
rs6000_expand_builtin_saveregs ()
/* Implement `va_start' for varargs and stdarg. */
#define EXPAND_BUILTIN_VA_START(stdarg, valist, nextarg) \
rs6000_va_start (stdarg, valist, nextarg)
/* Implement `va_arg'. */
#define EXPAND_BUILTIN_VA_ARG(valist, type) \
rs6000_va_arg (valist, type)
/* This macro generates the assembly code for function entry.
FILE is a stdio stream to output the code to.
......@@ -3297,7 +3300,9 @@ extern struct rtx_def *function_arg ();
extern int function_arg_partial_nregs ();
extern int function_arg_pass_by_reference ();
extern void setup_incoming_varargs ();
extern struct rtx_def *rs6000_expand_builtin_saveregs ();
extern union tree_node *rs6000_va_list ();
extern void rs6000_va_start ();
extern struct rtx_def *rs6000_va_arg ();
extern struct rtx_def *rs6000_stack_temp ();
extern int expand_block_move ();
extern int load_multiple_operation ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment