aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-11-15 09:06:12 +0000
committerJeff Law <law@gcc.gnu.org>1999-11-15 02:06:12 -0700
commit329e1d019a5bd47a57019c062943b481228af26f (patch)
tree3243946d94ba6242ab40dad70e3ad41a51362453
parentaff555c5def2fde11629e7e24d08c877219e8c94 (diff)
downloadgcc-329e1d019a5bd47a57019c062943b481228af26f.zip
gcc-329e1d019a5bd47a57019c062943b481228af26f.tar.gz
gcc-329e1d019a5bd47a57019c062943b481228af26f.tar.bz2
i386.c (ix86_decompose_address): Verify the base is a REG before trying to examine its register number.
* i386.c (ix86_decompose_address): Verify the base is a REG before trying to examine its register number. From-SVN: r30536
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/i386/i386.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca68fd2..95c2c77 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
+ * i386.c (ix86_decompose_address): Verify the base is a REG
+ before trying to examine its register number.
+
* basic-block.h: Remove all #defines and prototypes related to
integer lists.
(free_bb_mem, compute_preds_succs): Remove prototype.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 0901960..9228970 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1828,6 +1828,7 @@ ix86_decompose_address (addr, out)
Avoid this by transforming to [%esi+0]. */
if (ix86_cpu == PROCESSOR_K6 && !optimize_size
&& base && !index && !disp
+ && REG_P (base)
&& REGNO_REG_CLASS (REGNO (base)) == SIREG)
disp = const0_rtx;