@@ -58,6 +58,15 @@ const (
5858 riscv_HWPROBE_EXT_ZBA = 0x8
5959 riscv_HWPROBE_EXT_ZBB = 0x10
6060 riscv_HWPROBE_EXT_ZBS = 0x20
61+ riscv_HWPROBE_EXT_ZVBB = 0x20000
62+ riscv_HWPROBE_EXT_ZVBC = 0x40000
63+ riscv_HWPROBE_EXT_ZVKB = 0x80000
64+ riscv_HWPROBE_EXT_ZVKG = 0x100000
65+ riscv_HWPROBE_EXT_ZVKNED = 0x200000
66+ riscv_HWPROBE_EXT_ZVKNHB = 0x800000
67+ riscv_HWPROBE_EXT_ZVKSED = 0x1000000
68+ riscv_HWPROBE_EXT_ZVKSH = 0x2000000
69+ riscv_HWPROBE_EXT_ZVKT = 0x4000000
6170 riscv_HWPROBE_KEY_CPUPERF_0 = 0x5
6271 riscv_HWPROBE_MISALIGNED_FAST = 0x3
6372 riscv_HWPROBE_MISALIGNED_MASK = 0x7
@@ -99,6 +108,20 @@ func doinit() {
99108 RISCV64 .HasZba = isSet (v , riscv_HWPROBE_EXT_ZBA )
100109 RISCV64 .HasZbb = isSet (v , riscv_HWPROBE_EXT_ZBB )
101110 RISCV64 .HasZbs = isSet (v , riscv_HWPROBE_EXT_ZBS )
111+ RISCV64 .HasZvbb = isSet (v , riscv_HWPROBE_EXT_ZVBB )
112+ RISCV64 .HasZvbc = isSet (v , riscv_HWPROBE_EXT_ZVBC )
113+ RISCV64 .HasZvkb = isSet (v , riscv_HWPROBE_EXT_ZVKB )
114+ RISCV64 .HasZvkg = isSet (v , riscv_HWPROBE_EXT_ZVKG )
115+ RISCV64 .HasZvkt = isSet (v , riscv_HWPROBE_EXT_ZVKT )
116+ // Cryptography shorthand extensions
117+ RISCV64 .HasZvkn = isSet (v , riscv_HWPROBE_EXT_ZVKNED ) &&
118+ isSet (v , riscv_HWPROBE_EXT_ZVKNHB ) && RISCV64 .HasZvkb && RISCV64 .HasZvkt
119+ RISCV64 .HasZvknc = RISCV64 .HasZvkn && RISCV64 .HasZvbc
120+ RISCV64 .HasZvkng = RISCV64 .HasZvkn && RISCV64 .HasZvkg
121+ RISCV64 .HasZvks = isSet (v , riscv_HWPROBE_EXT_ZVKSED ) &&
122+ isSet (v , riscv_HWPROBE_EXT_ZVKSH ) && RISCV64 .HasZvkb && RISCV64 .HasZvkt
123+ RISCV64 .HasZvksc = RISCV64 .HasZvks && RISCV64 .HasZvbc
124+ RISCV64 .HasZvksg = RISCV64 .HasZvks && RISCV64 .HasZvkg
102125 }
103126 if pairs [1 ].key != - 1 {
104127 v := pairs [1 ].value & riscv_HWPROBE_MISALIGNED_MASK
0 commit comments