aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/clmulrw.h
blob: 784859ae74d6104e17ca5f1fb9c5a813ee8e27a8 (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 >> (31-i);
WRITE_RD(sext32(x));