From 2d33065aaeeaec02734e2af8c4c61300446d6e84 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 23 Nov 1994 17:21:54 -0500 Subject: [PATCH] Add -mhimem to support linking above 0x20000000 boundary. (CONST_COSTS): Correct range is -0x1fff to 0x2000. From-SVN: r8559 --- gcc/config/ns32k/ns32k.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h index 710abc7e2f0..fe80c724446 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: \ -- 2.30.2