From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com [IPv6:2607:f8b0:4864:20::f35]) by sourceware.org (Postfix) with ESMTPS id 6C8E73857C65 for ; Tue, 11 Aug 2020 08:38:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6C8E73857C65 Received: by mail-qv1-xf35.google.com with SMTP id w2so5549565qvh.12 for ; Tue, 11 Aug 2020 01:38:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NwVlqcEh9qBPDYNuVMvOiBLWwBofvjkxbrvjnIhAYeQ=; b=jFToc0AuTxOjLOHKPB46sDf/IA8SzNBAMZ//kv9rZRGyu6ZFUKFv3Qy94U1CrZJPgP n5fsvluy16dq0iAuwou5SysXNQI/ny+/YQAh+nJz7eCZv+fHYKcIJjF80Md7a1eGDNST l7B2q5QwHi18fIKm1V4uIcAs3194T4FQw3PTiie2E9OaKuQH3zvEQvD1EgzzybQGgFLb ble6jQu70SFgI1lwLHi7oE7wKd7gY8EwJ0RqG5PG0uYHqo253UcOO+NM4EhTJJB7J6Hm mBNc/B92jusIAtZbxzm5wv2T0g8DPDrNU/a1sVvgux6mX5kQoQaP7zHj52EGdiVRcoel lUzg== X-Gm-Message-State: AOAM532EZ5I8ULKZzbe0vdI752UVVHxnLgT8uV/2G9i41c6PuBWWdsol Fq7L0SCPF1CXOcNOsY08TQ6AaZh+lFoHXDbjsQU= X-Google-Smtp-Source: ABdhPJz+/U3X346TUFIhZbziVb0qtbdObfsUbPRYFV1/pLP0eUwDJcz+DMa0rVsrMFGGV6/JkgjdebCAjYSm8gtuEqs= X-Received: by 2002:ad4:44e5:: with SMTP id p5mr17409qvt.197.1597135100943; Tue, 11 Aug 2020 01:38:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Uros Bizjak Date: Tue, 11 Aug 2020 10:38:09 +0200 Message-ID: Subject: Re: [PATCH] [PR target/96350]Force ENDBR immediate into memory to avoid fake ENDBR opcode. To: Hongtao Liu Cc: GCC Patches , "H. J. Lu" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Aug 2020 08:38:22 -0000 On Tue, Aug 11, 2020 at 5:30 AM Hongtao Liu wrote: > > Hi: > The issue is described in the bugzilla. > Bootstrap is ok, regression test for i386/x86-64 backend is ok. > Ok for trunk? > > ChangeLog > gcc/ > PR target/96350 > * config/i386/i386.c (ix86_legitimate_constant_p): Return > false for ENDBR immediate. > (ix86_legitimate_address_p): Ditto. > * config/i386/predicated.md > (x86_64_immediate_operand): Exclude ENDBR immediate. > (x86_64_zext_immediate_operand): Ditto. > (x86_64_dwzext_immediate_operand): Ditto. > (ix86_not_endbr_immediate_operand): New predicate. > > gcc/testsuite > * gcc.target/i386/endbr_immediate.c: New test. +;; Return true if VALUE isn't an ENDBR opcode in immediate field. +(define_predicate "ix86_not_endbr_immediate_operand" + (match_test "1") Please reverse the above logic to introduce ix86_endbr_immediate_operand, that returns true for unwanted immediate. Something like: (define_predicate "ix86_endbr_immediate_operand" (match_code "const_int") ... And you will be able to use it like: if (ix86_endbr_immediate_operand (x, VOIDmode) return false; /* Otherwise we handle everything else in the move patterns. */ - return true; + return ix86_not_endbr_immediate_operand (x, VOIDmode); } Please handle this in CASE_CONST_SCALAR_INT: part. + if (disp && !ix86_not_endbr_immediate_operand (disp, VOIDmode)) + return false; And this in: /* Validate displacement. */ if (disp) { Uros. > -- > BR, > Hongtao