mirror of
https://github.com/golang/go.git
synced 2026-06-28 03:40:37 +00:00
internal/cpu: add zbc extension detection for riscv64
Add zbc extension detection for riscv64.
Change-Id: Ib333d67eb160998ca887a99ced9e9e9aee7d4c54
GitHub-Last-Rev: 836410115f
GitHub-Pull-Request: golang/go#78862
Reviewed-on: https://go-review.googlesource.com/c/go/+/768920
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Joel Sing <joel@sing.id.au>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Florian Lehner <lehner.florian86@gmail.com>
This commit is contained in:
parent
9c688e3f4d
commit
122eb7d035
3 changed files with 4 additions and 0 deletions
|
|
@ -157,6 +157,7 @@ var RISCV64 struct {
|
|||
HasFastMisaligned bool // Fast misaligned accesses
|
||||
HasV bool // Vector extension compatible with RVV 1.0
|
||||
HasZbb bool // Basic bit-manipulation extension
|
||||
HasZbc bool // Carryless multiplication extension
|
||||
HasZvbb bool // Vector Basic Bit-manipulation
|
||||
HasZvbc bool // Vector Carryless Multiplication
|
||||
HasZvkg bool // Vector GCM/GMAC
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ func doinit() {
|
|||
{Name: "fastmisaligned", Feature: &RISCV64.HasFastMisaligned},
|
||||
{Name: "v", Feature: &RISCV64.HasV},
|
||||
{Name: "zbb", Feature: &RISCV64.HasZbb},
|
||||
{Name: "zbc", Feature: &RISCV64.HasZbc},
|
||||
{Name: "zvbb", Feature: &RISCV64.HasZvbb},
|
||||
{Name: "zvbc", Feature: &RISCV64.HasZvbc},
|
||||
{Name: "zvkg", Feature: &RISCV64.HasZvkg},
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ const (
|
|||
riscv_HWPROBE_KEY_IMA_EXT_0 = 0x4
|
||||
riscv_HWPROBE_IMA_V = 0x4
|
||||
riscv_HWPROBE_EXT_ZBB = 0x10
|
||||
riscv_HWPROBE_EXT_ZBC = 0x80
|
||||
riscv_HWPROBE_EXT_ZVBB = 0x20000
|
||||
riscv_HWPROBE_EXT_ZVBC = 0x40000
|
||||
riscv_HWPROBE_EXT_ZVKB = 0x80000
|
||||
|
|
@ -95,6 +96,7 @@ func osInit() {
|
|||
v := uint(pairs[0].value)
|
||||
RISCV64.HasV = isSet(v, riscv_HWPROBE_IMA_V)
|
||||
RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB)
|
||||
RISCV64.HasZbc = isSet(v, riscv_HWPROBE_EXT_ZBC)
|
||||
RISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB)
|
||||
RISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC)
|
||||
RISCV64.HasZvkg = isSet(v, riscv_HWPROBE_EXT_ZVKG)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue