aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/clmulw.h
blob: 5bb753fe3de608da207f4021baa8a2e159ae4612 (plain)
1
2
3
4
5
6
require_extension(EXT_XZBC);
reg_t a = zext32(RS1), b = zext32(RS2), x = 0;
for (int i = 0; i < 32; i++)
  if ((b >> i) & 1)
    x ^= a << i;
WRITE_RD(sext32(x));