blob: 7028d31cf4b91086a63a139f62a5aae0bdd9e614 [file] [edit]
// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cpu
const CacheLinePadSize = 64
// RISC-V doesn't have a 'cpuid' equivalent. On Linux we rely on the riscv_hwprobe syscall.
func doinit() {
options = []option{
{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},
{Name: "zvkned", Feature: &RISCV64.HasZvkned},
{Name: "zvknha", Feature: &RISCV64.HasZvknha},
{Name: "zvknhb", Feature: &RISCV64.HasZvknhb},
{Name: "zvksed", Feature: &RISCV64.HasZvksed},
{Name: "zvksh", Feature: &RISCV64.HasZvksh},
{Name: "zvkt", Feature: &RISCV64.HasZvkt},
}
osInit()
}
func isSet(hwc uint, value uint) bool {
return hwc&value != 0
}