From: Alan Modra Date: Wed, 1 Dec 2004 06:13:16 +0000 (+0000) Subject: re PR target/12817 ([SYSV] Altivec code generation error with many registers used) X-Git-Tag: releases/gcc-3.3.6~213 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3dd562734e2c97f33c63a6510618eaa49fdc35a;p=thirdparty%2Fgcc.git re PR target/12817 ([SYSV] Altivec code generation error with many registers used) PR target/12817 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. From-SVN: r91555 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87e607bb90eb..c4d3e222c94b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-01 Alan Modra + + PR target/12817 + * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. + 2004-11-29 Roger Sayle PR rtl-optimization/9771 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index ff30609d30f8..009e1e7d7002 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -10358,8 +10358,10 @@ rs6000_emit_prologue () rtx reg, mem, vrsave; int offset; - /* Get VRSAVE onto a GPR. */ - reg = gen_rtx_REG (SImode, 12); + /* Get VRSAVE onto a GPR. Note that ABI_V4 might be using r12 + as frame_reg_rtx and r11 as the static chain pointer for + nested functions. */ + reg = gen_rtx_REG (SImode, 0); vrsave = gen_rtx_REG (SImode, VRSAVE_REGNO); if (TARGET_MACHO) emit_insn (gen_get_vrsave_internal (reg));