From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 67216 invoked by alias); 8 Oct 2015 05:00:44 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 66076 invoked by uid 89); 8 Oct 2015 05:00:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f43.google.com Received: from mail-pa0-f43.google.com (HELO mail-pa0-f43.google.com) (209.85.220.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 08 Oct 2015 05:00:33 +0000 Received: by pablk4 with SMTP id lk4so42706700pab.3 for ; Wed, 07 Oct 2015 22:00:31 -0700 (PDT) X-Received: by 10.68.98.227 with SMTP id el3mr5687034pbb.20.1444280431596; Wed, 07 Oct 2015 22:00:31 -0700 (PDT) Received: from bigtime.com ([1.144.5.178]) by smtp.gmail.com with ESMTPSA id a17sm42581270pbu.55.2015.10.07.22.00.30 for (version=TLSv1/SSLv3 cipher=OTHER); Wed, 07 Oct 2015 22:00:31 -0700 (PDT) From: Richard Henderson To: gcc-patches@gcc.gnu.org Subject: [PATCH 6/9] i386: Replace ix86_address_seg with addr_space_t Date: Thu, 08 Oct 2015 05:00:00 -0000 Message-Id: <1444280375-20866-7-git-send-email-rth@redhat.com> In-Reply-To: <1444280375-20866-1-git-send-email-rth@redhat.com> References: <1444280375-20866-1-git-send-email-rth@redhat.com> X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg00780.txt.bz2 * config/i386/i386-protos.h (enum ix86_address_seg): Remove. (struct ix86_address): Use addr_space_t for seg. * config/i386/i386.c (ix86_decompose_address): Use ADDR_SPACE_* names. (ix86_legitimate_address_p): Likewise. (ix86_print_operand_address_as): Likewise. (memory_address_length): Likewise. * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Likewise. * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise. * config/i386/predicates.md (address_no_seg_operand): Likewise. (vsib_address_operand): Likewise. (address_mpx_no_base_operand, address_mpx_no_index_operand): Likewise. --- gcc/config/i386/i386-protos.h | 3 +-- gcc/config/i386/i386.c | 12 ++++++------ gcc/config/i386/i386.h | 3 ++- gcc/config/i386/predicates.md | 8 ++++---- gcc/config/i386/rdos.h | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index f942ef5..4e6d9ad 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -279,12 +279,11 @@ extern rtx maybe_get_pool_constant (rtx); extern char internal_label_prefix[16]; extern int internal_label_prefix_len; -enum ix86_address_seg { SEG_DEFAULT, SEG_FS, SEG_GS }; struct ix86_address { rtx base, index, disp; HOST_WIDE_INT scale; - enum ix86_address_seg seg; + addr_space_t seg; }; extern int ix86_decompose_address (rtx, struct ix86_address *); diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8a41f20..f5a0b8f 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -13951,7 +13951,7 @@ ix86_decompose_address (rtx addr, struct ix86_address *out) rtx scale_rtx = NULL_RTX; rtx tmp; int retval = 1; - enum ix86_address_seg seg = SEG_DEFAULT; + addr_space_t seg = ADDR_SPACE_GENERIC; /* Allow zero-extended SImode addresses, they will be emitted with addr32 prefix. */ @@ -14050,7 +14050,7 @@ ix86_decompose_address (rtx addr, struct ix86_address *out) case UNSPEC: if (XINT (op, 1) == UNSPEC_TP && TARGET_TLS_DIRECT_SEG_REFS - && seg == SEG_DEFAULT) + && seg == ADDR_SPACE_GENERIC) seg = DEFAULT_TLS_SEG_REG; else return 0; @@ -14638,7 +14638,7 @@ ix86_legitimate_address_p (machine_mode, rtx addr, bool strict) struct ix86_address parts; rtx base, index, disp; HOST_WIDE_INT scale; - enum ix86_address_seg seg; + addr_space_t seg; if (ix86_decompose_address (addr, &parts) <= 0) /* Decomposition failed. */ @@ -14684,7 +14684,7 @@ ix86_legitimate_address_p (machine_mode, rtx addr, bool strict) return false; /* Address override works only on the (%reg) part of %fs:(%reg). */ - if (seg != SEG_DEFAULT + if (seg != ADDR_SPACE_GENERIC && ((base && GET_MODE (base) != word_mode) || (index && GET_MODE (index) != word_mode))) return false; @@ -17326,7 +17326,7 @@ ix86_print_operand_address_as (FILE *file, rtx addr, addr_space_t as) if (CONST_INT_P (disp)) { - if (ASSEMBLER_DIALECT == ASM_INTEL && parts.seg == SEG_DEFAULT) + if (ASSEMBLER_DIALECT == ASM_INTEL && parts.seg == ADDR_SPACE_GENERIC) fputs ("ds:", file); fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (disp)); } @@ -27073,7 +27073,7 @@ memory_address_length (rtx addr, bool lea) ok = ix86_decompose_address (addr, &parts); gcc_assert (ok); - len = (parts.seg == SEG_DEFAULT) ? 0 : 1; + len = (parts.seg == ADDR_SPACE_GENERIC) ? 0 : 1; /* If this is not LEA instruction, add the length of addr32 prefix. */ if (TARGET_64BIT && !lea diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index a24dea5..d9a78df 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -598,7 +598,8 @@ extern tree x86_mfence; #define DEFAULT_ABI SYSV_ABI /* The default TLS segment register used by target. */ -#define DEFAULT_TLS_SEG_REG (TARGET_64BIT ? SEG_FS : SEG_GS) +#define DEFAULT_TLS_SEG_REG \ + (TARGET_64BIT ? ADDR_SPACE_SEG_FS : ADDR_SPACE_SEG_GS) /* Subtargets may reset this to 1 in order to enable 96-bit long double with the rounding mode forced to 53 bits. */ diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 042b949..7b2584c 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -969,7 +969,7 @@ ok = ix86_decompose_address (op, &parts); gcc_assert (ok); - return parts.seg == SEG_DEFAULT; + return parts.seg == ADDR_SPACE_GENERIC; }) ;; Return true if op if a valid base register, displacement or @@ -983,7 +983,7 @@ ok = ix86_decompose_address (op, &parts); gcc_assert (ok); - if (parts.index || parts.seg != SEG_DEFAULT) + if (parts.index || parts.seg != ADDR_SPACE_GENERIC) return false; /* VSIB addressing doesn't support (%rip). */ @@ -1027,7 +1027,7 @@ if (parts.index && parts.base) return false; - if (parts.seg != SEG_DEFAULT) + if (parts.seg != ADDR_SPACE_GENERIC) return false; /* Do not support (%rip). */ @@ -1059,7 +1059,7 @@ if (parts.index) return false; - if (parts.seg != SEG_DEFAULT) + if (parts.seg != ADDR_SPACE_GENERIC) return false; /* Do not support (%rip). */ diff --git a/gcc/config/i386/rdos.h b/gcc/config/i386/rdos.h index f9bfe6d..ccf6b78 100644 --- a/gcc/config/i386/rdos.h +++ b/gcc/config/i386/rdos.h @@ -25,7 +25,7 @@ along with GCC; see the file COPYING3. If not see #define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT MASK_TLS_DIRECT_SEG_REFS #undef DEFAULT_TLS_SEG_REG -#define DEFAULT_TLS_SEG_REG SEG_GS +#define DEFAULT_TLS_SEG_REG ADDR_SPACE_SEG_GS #undef TARGET_RDOS #define TARGET_RDOS 1 -- 2.4.3