diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-12-27 06:52:59 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-12-27 06:52:59 -0500 |
commit | b851ea098ed463f18e1534b8295ef666f6c7916d (patch) | |
tree | b3cbd63787aa4d0b8049517755f803e5ab0de3f8 | |
parent | 818b11b942756b6af4e2dd01e2893e224076d40c (diff) | |
download | gcc-b851ea098ed463f18e1534b8295ef666f6c7916d.zip gcc-b851ea098ed463f18e1534b8295ef666f6c7916d.tar.gz gcc-b851ea098ed463f18e1534b8295ef666f6c7916d.tar.bz2 |
(copy_rtx_if_shared): A CONST can be shared if it contains a
SYBOL_REF.
From-SVN: r2923
-rw-r--r-- | gcc/emit-rtl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 1335308..8291da1 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1267,6 +1267,15 @@ copy_rtx_if_shared (orig) /* SCRATCH must be shared because they represent distinct values. */ return x; + case CONST: + /* CONST can be shared if it contains a SYMBOL_REF. If it contains + a LABEL_REF, it isn't sharable. */ + if (GET_CODE (XEXP (x, 0)) == PLUS + && GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF + && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT) + return x; + break; + case INSN: case JUMP_INSN: case CALL_INSN: |