diff options
author | Richard Stallman <rms@gnu.org> | 1992-05-16 19:40:17 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-05-16 19:40:17 +0000 |
commit | b8168f0d34366808143d0f0365243d0a13e520eb (patch) | |
tree | ad44cde09744047703938ebf2056496bd6679f24 | |
parent | 754731823fbe874204c1277823e07d9673aa3e93 (diff) | |
download | gcc-b8168f0d34366808143d0f0365243d0a13e520eb.zip gcc-b8168f0d34366808143d0f0365243d0a13e520eb.tar.gz gcc-b8168f0d34366808143d0f0365243d0a13e520eb.tar.bz2 |
*** empty log message ***
From-SVN: r998
-rw-r--r-- | gcc/config/ns32k/ns32k.h | 12 | ||||
-rw-r--r-- | gcc/config/ns32k/ns32k.md | 6 |
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h index 07fc882..1291638 100644 --- a/gcc/config/ns32k/ns32k.h +++ b/gcc/config/ns32k/ns32k.h @@ -830,7 +830,17 @@ __transfer_from_trampoline () \ || (GET_CODE (X) == PLUS \ && GET_CODE (XEXP (X, 0)) == REG \ && REG_OK_FOR_BASE_P (XEXP (X, 0)) \ - && CONSTANT_ADDRESS_P (XEXP (X, 1)))) + && CONSTANT_ADDRESS_P (XEXP (X, 1)) \ + && (GET_CODE (X) != CONST_INT || NS32K_DISPLACEMENT_P (INTVAL (X))))) + +/* 1 if integer I will fit in a 4 byte displacement field. + Strictly speaking, we can't be sure that a symbol will fit this range. + But, in practice, it always will. */ + +#define NS32K_DISPLACEMENT(i) \ + (((i) <= 16777215 && (i) >= -16777216) \ + || ((TARGET_32532 || TARGET_32332) \ + && (i) <= 536870913 && (i) >= -536870912)) /* Check for frame pointer or stack pointer. */ #define MEM_REG(X) \ diff --git a/gcc/config/ns32k/ns32k.md b/gcc/config/ns32k/ns32k.md index 107ad41..4fcfe78 100644 --- a/gcc/config/ns32k/ns32k.md +++ b/gcc/config/ns32k/ns32k.md @@ -833,10 +833,10 @@ if (which_alternative == 1) { int i = INTVAL (operands[2]); - if ( i < 0x40000000 && i >= -0x40000000 ) - return \"addr %c2(%1),%0\"; + if (NS32K_DISPLACEMENT_P (i)) + return \"addr %c2(%1),%0\"; else - return \"movd %1,%0\;addd %2,%0\"; + return \"movd %1,%0\;addd %2,%0\"; } if (GET_CODE (operands[2]) == CONST_INT) { |