diff options
Diffstat (limited to 'gcc/tree-ssa-address.c')
-rw-r--r-- | gcc/tree-ssa-address.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c index f37d2a7c7e4..9dbc399d2cd 100644 --- a/gcc/tree-ssa-address.c +++ b/gcc/tree-ssa-address.c @@ -1,5 +1,5 @@ /* Memory address lowering and addressing mode selection. - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -134,15 +134,10 @@ gen_addr_rtx (rtx symbol, rtx base, rtx index, rtx step, rtx offset, act_elem = symbol; if (offset) { - act_elem = gen_rtx_PLUS (Pmode, act_elem, offset); - + act_elem = gen_rtx_CONST (Pmode, + gen_rtx_PLUS (Pmode, act_elem, offset)); if (offset_p) - *offset_p = &XEXP (act_elem, 1); - - if (GET_CODE (symbol) == SYMBOL_REF - || GET_CODE (symbol) == LABEL_REF - || GET_CODE (symbol) == CONST) - act_elem = gen_rtx_CONST (Pmode, act_elem); + *offset_p = &XEXP (XEXP (act_elem, 0), 1); } if (*addr) |