aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-11-23 17:21:54 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-11-23 17:21:54 -0500
commit2d33065aaeeaec02734e2af8c4c61300446d6e84 (patch)
tree1d8f01db9841df3a0727459d6a89687bd8b9fe5d
parent6ad2f71a2236d906a70814b3f42977a2dd0b2bae (diff)
downloadgcc-2d33065aaeeaec02734e2af8c4c61300446d6e84.zip
gcc-2d33065aaeeaec02734e2af8c4c61300446d6e84.tar.gz
gcc-2d33065aaeeaec02734e2af8c4c61300446d6e84.tar.bz2
Add -mhimem to support linking above 0x20000000 boundary.
(CONST_COSTS): Correct range is -0x1fff to 0x2000. From-SVN: r8559
-rw-r--r--gcc/config/ns32k/ns32k.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h
index 710abc7..fe80c72 100644
--- a/gcc/config/ns32k/ns32k.h
+++ b/gcc/config/ns32k/ns32k.h
@@ -81,6 +81,7 @@ extern int target_flags;
/* Ok to use the static base register (and presume it's 0) */
#define TARGET_SB ((target_flags & 32) == 0)
+#define TARGET_HIMEM (target_flags & 128)
/* Compile using bitfield insns. */
#define TARGET_BITFIELD ((target_flags & 64) == 0)
@@ -106,6 +107,8 @@ extern int target_flags;
{ "nosb", 32}, \
{ "bitfield", -64}, \
{ "nobitfield", 64}, \
+ { "himem", 128}, \
+ { "nohimem", -128}, \
{ "", TARGET_DEFAULT}}
/* TARGET_DEFAULT is defined in encore.h, pc532.h, etc. */
@@ -114,7 +117,7 @@ extern int target_flags;
#define OVERRIDE_OPTIONS \
{ \
- if (flag_pic) target_flags |= 32; \
+ if (flag_pic || TARGET_HIMEM) target_flags |= 32; \
}
@@ -910,7 +913,7 @@ __transfer_from_trampoline () \
|| (GET_CODE (X) == PLUS \
&& GET_CODE (XEXP (X, 0)) == REG \
&& REG_OK_FOR_BASE_P (XEXP (X, 0)) \
- && (flag_pic ? \
+ && ((flag_pic || TARGET_HIMEM) ? \
CONSTANT_ADDRESS_NO_LABEL_P (XEXP (X, 1)) \
: \
CONSTANT_ADDRESS_P (XEXP (X, 1))) \
@@ -1142,7 +1145,7 @@ while (0)
#define CONST_COSTS(RTX,CODE,OUTER_CODE) \
case CONST_INT: \
if (INTVAL (RTX) <= 7 && INTVAL (RTX) >= -8) return 0; \
- if (INTVAL (RTX) < 0x4000 && INTVAL (RTX) >= -0x4000) \
+ if (INTVAL (RTX) < 0x2000 && INTVAL (RTX) >= -0x2000) \
return 1; \
case CONST: \
case LABEL_REF: \