aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2003-03-12 01:30:56 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2003-03-12 01:30:56 +0000
commit9b7b447f8fc8096428e7ead66af376ebf85970c1 (patch)
treee573b1e0ef8c5709e18ef4e1e0aa0e1d70a0d989 /gcc
parent18a47d21bab2ff53cc705acd6aa34ffe1aa39519 (diff)
downloadgcc-9b7b447f8fc8096428e7ead66af376ebf85970c1.zip
gcc-9b7b447f8fc8096428e7ead66af376ebf85970c1.tar.gz
gcc-9b7b447f8fc8096428e7ead66af376ebf85970c1.tar.bz2
rs6000.c (rs6000_stack_info): Remove insn_chain_scanned.
2003-03-11 Aldy Hernandez <aldyh@redhat.com> * config/rs6000/rs6000.c (rs6000_stack_info): Remove insn_chain_scanned. Use insn_chain_scanned_p in machine_function. * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p. From-SVN: r64210
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c9
-rw-r--r--gcc/config/rs6000/rs6000.h2
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc90701..80363e6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-03-11 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_stack_info): Remove
+ insn_chain_scanned. Use insn_chain_scanned_p in machine_function.
+
+ * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
+
Tue Mar 11 21:19:03 2003 Alexandre Oliva <aoliva@redhat.com>
* toplev.c (independent_decode_option): Return success for --help,
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 38a2e32..b64c8cc 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -9169,7 +9169,6 @@ rs6000_stack_info ()
enum rs6000_abi abi;
int ehrd_size;
int total_raw_size;
- static int insn_chain_scanned = -1;
/* Zero all fields portably. */
info = zero_info;
@@ -9177,9 +9176,11 @@ rs6000_stack_info ()
if (TARGET_SPE)
{
/* Cache value so we don't rescan instruction chain over and over. */
- if (insn_chain_scanned < 0)
- insn_chain_scanned = (int) spe_func_has_64bit_regs_p ();
- info_ptr->spe_64bit_regs_used = insn_chain_scanned;
+ if (cfun->machine->insn_chain_scanned_p == 0)
+ {
+ cfun->machine->insn_chain_scanned_p = 1;
+ info_ptr->spe_64bit_regs_used = (int) spe_func_has_64bit_regs_p ();
+ }
}
/* Select which calling sequence. */
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index e2c1f63..fe932a6 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1649,6 +1649,8 @@ typedef struct machine_function GTY(())
int sysv_varargs_p;
/* Flags if __builtin_return_address (n) with n >= 1 was used. */
int ra_needs_full_frame;
+ /* Whether the instruction chain has been scanned already. */
+ int insn_chain_scanned_p;
} machine_function;
/* Define a data type for recording info about an argument list