From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by sourceware.org (Postfix) with ESMTPS id D7533385C418 for ; Mon, 31 Jan 2022 18:55:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D7533385C418 Received: by mail-pj1-x1035.google.com with SMTP id q63so14857715pja.1 for ; Mon, 31 Jan 2022 10:55:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=R+E7bbwHxGXXnPCYZtm+arGvbu2oJfiOyGvSePpk8Dg=; b=nBUUa4D66k+cBjBelBBwKZXOyd2Np7LkOv3A95aYHxB4VOfL03XXgot4CuNSJ5pPMX 8TpsT67FO5V9f/if3UB1Q6lSxNskMkhBuYXMf7IUz5K5IpoZjk93KmahwMKYsZxClEgt nqlRcQjK0T//ekChPy6pzaxgIQC+kVsPuN/71ymCIjLO44MIN/C3RWzJnPs0KOgst31F 0o96b8pmllM4e0L6ND7f9kzKk9WrHf105rK6+bvtY9uqyrItkD6EYxFKikRxU7pTMak9 32qz8xO0KwLgw1M58fG+W4RtxXAs6inLGHQBOb7tgzh4/vs3E23xc2pa16NUPUB2th7O Yx7A== X-Gm-Message-State: AOAM5301aHzU+bEgTWa/B4f8Jrru9+/GyJk20j8s8RRNm7SIM14GZod4 ORM/Q++HdhKU3hliSVegkYE2lZy7VD8= X-Google-Smtp-Source: ABdhPJzK/dABJJp7AICTnve8uB2YEnQxQhgI2Sr7Nq/ampPRvx5360oTJ/87G8attMgfJBoztXXHxQ== X-Received: by 2002:a17:902:6b4a:: with SMTP id g10mr22142544plt.57.1643655330770; Mon, 31 Jan 2022 10:55:30 -0800 (PST) Received: from gnu-tgl-2.localdomain ([172.58.35.133]) by smtp.gmail.com with ESMTPSA id m20sm16563520pfk.215.2022.01.31.10.55.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jan 2022 10:55:29 -0800 (PST) Received: from gnu-tgl-2.. (localhost [IPv6:::1]) by gnu-tgl-2.localdomain (Postfix) with ESMTP id 27FBD3004A6 for ; Mon, 31 Jan 2022 10:55:28 -0800 (PST) From: "H.J. Lu" To: gcc-patches@gcc.gnu.org Subject: [GCC 11 PATCH 4/5] x86: Rename -harden-sls=indirect-branch to -harden-sls=indirect-jmp Date: Mon, 31 Jan 2022 10:55:27 -0800 Message-Id: <20220131185528.619688-5-hjl.tools@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220131185528.619688-1-hjl.tools@gmail.com> References: <20220131185528.619688-1-hjl.tools@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3028.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Mon, 31 Jan 2022 18:55:33 -0000 Indirect branch also includes indirect call instructions. Rename -harden-sls=indirect-branch to -harden-sls=indirect-jmp to match its intended behavior. PR target/102952 * config/i386/i386-opts.h (harden_sls): Replace harden_sls_indirect_branch with harden_sls_indirect_jmp. * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Likewise. (ix86_output_indirect_jmp): Likewise. (ix86_output_call_insn): Likewise. * config/i386/i386.opt: Replace indirect-branch with indirect-jmp. Replace harden_sls_indirect_branch with harden_sls_indirect_jmp. * doc/invoke.texi (-harden-sls=): Replace indirect-branch with indirect-jmp. (cherry picked from commit ed8060950c64f2e449aaf90e438aa26d0d9d0b31) --- gcc/config/i386/i386-opts.h | 4 ++-- gcc/config/i386/i386.c | 6 +++--- gcc/config/i386/i386.opt | 2 +- gcc/doc/invoke.texi | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h index e159019e904..ab1f658dab9 100644 --- a/gcc/config/i386/i386-opts.h +++ b/gcc/config/i386/i386-opts.h @@ -128,8 +128,8 @@ enum instrument_return { enum harden_sls { harden_sls_none = 0, harden_sls_return = 1 << 0, - harden_sls_indirect_branch = 1 << 1, - harden_sls_all = harden_sls_return | harden_sls_indirect_branch + harden_sls_indirect_jmp = 1 << 1, + harden_sls_all = harden_sls_return | harden_sls_indirect_jmp }; #endif diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2643aa9480f..35dbe05aecd 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -15738,7 +15738,7 @@ ix86_output_jmp_thunk_or_indirect (const char *thunk_name, const int regno) fprintf (asm_out_file, "\tjmp\t"); assemble_name (asm_out_file, thunk_name); putc ('\n', asm_out_file); - if ((ix86_harden_sls & harden_sls_indirect_branch)) + if ((ix86_harden_sls & harden_sls_indirect_jmp)) fputs ("\tint3\n", asm_out_file); } else @@ -15968,7 +15968,7 @@ ix86_output_indirect_jmp (rtx call_op) } else output_asm_insn ("%!jmp\t%A0", &call_op); - return (ix86_harden_sls & harden_sls_indirect_branch) ? "int3" : ""; + return (ix86_harden_sls & harden_sls_indirect_jmp) ? "int3" : ""; } /* Output return instrumentation for current function if needed. */ @@ -16135,7 +16135,7 @@ ix86_output_call_insn (rtx_insn *insn, rtx call_op) { output_asm_insn (xasm, &call_op); if (!direct_p - && (ix86_harden_sls & harden_sls_indirect_branch)) + && (ix86_harden_sls & harden_sls_indirect_jmp)) return "int3"; } return ""; diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 46010c2cc1d..f62b0ebd3b4 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -1132,7 +1132,7 @@ EnumValue Enum(harden_sls) String(return) Value(harden_sls_return) EnumValue -Enum(harden_sls) String(indirect-branch) Value(harden_sls_indirect_branch) +Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp) EnumValue Enum(harden_sls) String(all) Value(harden_sls_all) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 645189c2227..cf536a15116 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -31729,8 +31729,8 @@ Force indirect call and jump via register. @opindex mharden-sls Generate code to mitigate against straight line speculation (SLS) with @var{choice}. The default is @samp{none} which disables all SLS -hardening. @samp{return} enables SLS hardening for function return. -@samp{indirect-branch} enables SLS hardening for indirect branch. +hardening. @samp{return} enables SLS hardening for function returns. +@samp{indirect-jmp} enables SLS hardening for indirect jumps. @samp{all} enables all SLS hardening. @item -mindirect-branch-cs-prefix -- 2.34.1