Skip to documentation
SLOP

tiny.simd.detectSpin

Reference tiny.simd detectSpin

Defined in thread.spin.

Called byCallsPoolConfigcandidatestest sourcelib.simd.src.thread.pooltest: Highway pool configurations pre...test sourcelib.simd.src.thread.spintest: Highway detected spin policy co...test sourcelib.simd.src.thread.spintest: Highway spin names and disabled...private sourcelib.simd.src.thread.spincpuidprivate sourcelib.simd.src.thread.spinenabledprivate sourcelib.simd.src.thread.spinhaveMonitorXprivate sourcelib.simd.src.thread.spinhaveUMonitorprivate sourcelib.simd.src.thread.spinisAmdprivate sourcelib.simd.src.thread.spinisX86thread.spindetectSpin
Static calls · unresolved targets: 0 · external targets: 0.

Source

Source: lib/simd/src/thread/spin.zig:168

zig
pub fn detectSpin(disabled: u8) SpinType {    if (comptime isX86()) {        const leaf0 = cpuid(0, 0);        if (comptime haveMonitorX()) {            if (enabled(disabled, .monitor_x) and isAmd(leaf0)) {                const extended = cpuid(0x8000_0000, 0);                if (extended.eax >= 0x8000_0001) {                    const features = cpuid(0x8000_0001, 0);                    if (features.ecx & (@as(u32, 1) << 29) != 0) {                        return .monitor_x;                    }                }            }        }        if (comptime haveUMonitor()) {            if (enabled(disabled, .u_monitor) and leaf0.eax >= 7) {                const features = cpuid(7, 0);                if (features.ecx & (@as(u32, 1) << 5) != 0) {                    return .u_monitor;                }            }        }    }    return .pause;}

Source: lib/simd/src/root.zig:125

zig
pub const detectSpin = thread.detectSpin;

Also reachable as

thread.detectSpin.

Audit

Definitions1
Public names3
Members0
Version26.7.0
Revisiondaab053ee433