re PR target/17052 (altivec varargs failure if no optimization)
PR target/17052 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p. * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use current_function_stdarg in place of sysv_varargs_p. * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set sysv_varargs_p. From-SVN: r86533
This commit is contained in:
parent
5352bda03e
commit
e548ead97f
@ -1,3 +1,12 @@
|
||||
2004-08-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR target/17052
|
||||
* config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
|
||||
* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
|
||||
current_function_stdarg in place of sysv_varargs_p.
|
||||
* config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
|
||||
sysv_varargs_p.
|
||||
|
||||
2004-08-24 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/16298
|
||||
|
@ -5304,8 +5304,6 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
|
||||
|
||||
if (DEFAULT_ABI == ABI_V4)
|
||||
{
|
||||
/* Indicate to allocate space on the stack for varargs save area. */
|
||||
cfun->machine->sysv_varargs_p = 1;
|
||||
if (! no_rtl)
|
||||
save_area = plus_constant (virtual_stack_vars_rtx,
|
||||
- RS6000_VARARGS_SIZE);
|
||||
@ -5316,7 +5314,6 @@ setup_incoming_varargs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
|
||||
{
|
||||
first_reg_offset = next_cum.words;
|
||||
save_area = virtual_incoming_args_rtx;
|
||||
cfun->machine->sysv_varargs_p = 0;
|
||||
|
||||
if (targetm.calls.must_pass_in_stack (mode, type))
|
||||
first_reg_offset += rs6000_arg_size (TYPE_MODE (type), type);
|
||||
|
@ -1639,8 +1639,6 @@ extern enum rs6000_abi rs6000_current_abi; /* available for use by subtarget */
|
||||
This is added to the cfun structure. */
|
||||
typedef struct machine_function GTY(())
|
||||
{
|
||||
/* Whether a System V.4 varargs area was created. */
|
||||
int sysv_varargs_p;
|
||||
/* Flags if __builtin_return_address (n) with n >= 1 was used. */
|
||||
int ra_needs_full_frame;
|
||||
/* Some local-dynamic symbol. */
|
||||
|
@ -332,7 +332,7 @@ do { \
|
||||
/* Size of the V.4 varargs area if needed. */
|
||||
/* Override rs6000.h definition. */
|
||||
#undef RS6000_VARARGS_AREA
|
||||
#define RS6000_VARARGS_AREA ((cfun->machine->sysv_varargs_p) ? RS6000_VARARGS_SIZE : 0)
|
||||
#define RS6000_VARARGS_AREA (current_function_stdarg ? RS6000_VARARGS_SIZE : 0)
|
||||
|
||||
/* Override default big endianism definitions in rs6000.h. */
|
||||
#undef BYTES_BIG_ENDIAN
|
||||
|
Loading…
Reference in New Issue
Block a user