diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-10-24 19:56:45 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-10-24 19:56:45 +0000 |
commit | c927a8abca972838de4b3bd692d1208e8a63f05a (patch) | |
tree | e285a5efe7dfb6e5468cba3a74a99b6e93f7104d /gcc | |
parent | 95271d560f4a751ea2c6de172ff8ddf482d01897 (diff) | |
download | gcc-c927a8abca972838de4b3bd692d1208e8a63f05a.tar.gz |
Another goof in last change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16165 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/mn10300/mn10300.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index e022063ddd5..158cb2b34cd 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -1051,11 +1051,15 @@ legitimize_address (x, oldx, mode) if (GET_CODE (y) == CONST) y = XEXP (y, 0); - regx1 = force_reg (Pmode, force_operand (XEXP (x, 0), 0)); - regy1 = force_reg (Pmode, force_operand (XEXP (y, 0), 0)); - regy2 = force_reg (Pmode, force_operand (XEXP (y, 1), 0)); - regx1 = force_reg (Pmode, gen_rtx (GET_CODE (y), Pmode, regx1, regy2)); - return force_reg (Pmode, gen_rtx (PLUS, Pmode, regx1, regy1)); + if (GET_CODE (y) == PLUS || GET_CODE (y) == MINUS) + { + regx1 = force_reg (Pmode, force_operand (XEXP (x, 0), 0)); + regy1 = force_reg (Pmode, force_operand (XEXP (y, 0), 0)); + regy2 = force_reg (Pmode, force_operand (XEXP (y, 1), 0)); + regx1 = force_reg (Pmode, + gen_rtx (GET_CODE (y), Pmode, regx1, regy2)); + return force_reg (Pmode, gen_rtx (PLUS, Pmode, regx1, regy1)); + } } return x; } |