From 0aacc8ed7bf8242980eee04231aff0cdc70f4f08 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 12 Feb 2002 15:18:42 +0000 Subject: [PATCH] alias.c (find_base_value, [...]): Handle #ifdef POINTERS_EXTEND_UNSIGNED. * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND): Handle #ifdef POINTERS_EXTEND_UNSIGNED. From-SVN: r49706 --- gcc/ChangeLog | 5 +++++ gcc/alias.c | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 524c6d09495..5ef7e507b95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 12 10:12:56 2002 Richard Kenner + + * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND): + Handle #ifdef POINTERS_EXTEND_UNSIGNED. + 2002-02-11 Hans-Peter Nilsson * config/mmix/mmix.c (mmix_assemble_integer) : Handle diff --git a/gcc/alias.c b/gcc/alias.c index 95b16ca1ae7..ca533ee4d82 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -728,6 +728,7 @@ find_base_value (src) rtx src; { unsigned int regno; + switch (GET_CODE (src)) { case SYMBOL_REF: @@ -846,8 +847,6 @@ find_base_value (src) if (GET_MODE_SIZE (GET_MODE (src)) < GET_MODE_SIZE (Pmode)) break; /* Fall through. */ - case ZERO_EXTEND: - case SIGN_EXTEND: /* used for NT/Alpha pointers */ case HIGH: case PRE_INC: case PRE_DEC: @@ -857,6 +856,19 @@ find_base_value (src) case POST_MODIFY: return find_base_value (XEXP (src, 0)); + case ZERO_EXTEND: + case SIGN_EXTEND: /* used for NT/Alpha pointers */ + { + rtx temp = find_base_value (XEXP (src, 0)); + +#ifdef POINTERS_EXTEND_UNSIGNED + if (temp != 0 && CONSTANT_P (temp) && GET_MODE (temp) != Pmode) + temp = convert_memory_address (Pmode, temp); +#endif + + return temp; + } + default: break; } -- 2.30.2