diff options
| author | Joel Sing <joel@sing.id.au> | 2024-06-15 01:29:32 +1000 |
|---|---|---|
| committer | Joel Sing <joel@sing.id.au> | 2025-02-20 03:20:03 -0800 |
| commit | 04de448c6d9d0ceab7f04b1f3d44f91e8b129d58 (patch) | |
| tree | 48dfaf7647a5749f0275c8644f765b0e051f51ce /src/cmd/internal/obj | |
| parent | 9b842e2e63b660dd5e9ac39bac58a578d7b69824 (diff) | |
| download | go-04de448c6d9d0ceab7f04b1f3d44f91e8b129d58.tar.xz | |
cmd/internal/obj/x86: add support for the endbr64 instruction on amd64
Add support for endbr64, which terminates an indirect branch in 64-bit
mode. This is effectively used to mark locations where an indirect branch
is permitted to land, when Indirect Branch Tracking (IBT) is enforced on
Intel CPUs.
Updates #66054
Change-Id: Ib898031711cfaaa6e05c197bfe727ded0bce6f52
Reviewed-on: https://go-review.googlesource.com/c/go/+/649215
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Diffstat (limited to 'src/cmd/internal/obj')
| -rw-r--r-- | src/cmd/internal/obj/x86/aenum.go | 1 | ||||
| -rw-r--r-- | src/cmd/internal/obj/x86/anames.go | 1 | ||||
| -rw-r--r-- | src/cmd/internal/obj/x86/asm6.go | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/internal/obj/x86/aenum.go b/src/cmd/internal/obj/x86/aenum.go index 79cdd241a2..c9be748b32 100644 --- a/src/cmd/internal/obj/x86/aenum.go +++ b/src/cmd/internal/obj/x86/aenum.go @@ -212,6 +212,7 @@ const ( ADPPD ADPPS AEMMS + AENDBR64 AENTER AEXTRACTPS AF2XM1 diff --git a/src/cmd/internal/obj/x86/anames.go b/src/cmd/internal/obj/x86/anames.go index 3966381e50..43483e959a 100644 --- a/src/cmd/internal/obj/x86/anames.go +++ b/src/cmd/internal/obj/x86/anames.go @@ -210,6 +210,7 @@ var Anames = []string{ "DPPD", "DPPS", "EMMS", + "ENDBR64", "ENTER", "EXTRACTPS", "F2XM1", diff --git a/src/cmd/internal/obj/x86/asm6.go b/src/cmd/internal/obj/x86/asm6.go index 95020915ca..3332134141 100644 --- a/src/cmd/internal/obj/x86/asm6.go +++ b/src/cmd/internal/obj/x86/asm6.go @@ -1096,6 +1096,7 @@ var optab = {ADPPD, yxshuf, Pq, opBytes{0x3a, 0x41, 0}}, {ADPPS, yxshuf, Pq, opBytes{0x3a, 0x40, 0}}, {AEMMS, ynone, Pm, opBytes{0x77}}, + {AENDBR64, ynone, Pf3, opBytes{0x1e, 0xfa}}, {AEXTRACTPS, yextractps, Pq, opBytes{0x3a, 0x17, 0}}, {AENTER, nil, 0, opBytes{}}, // botch {AFXRSTOR, ysvrs_mo, Pm, opBytes{0xae, 01, 0xae, 01}}, |
