aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/clz.h
blob: e10e4d2d84d9dad17b3b64e27c7f35ddb732b0ea (plain)
1
2
3
4
5
require_either_extension(xlen == 32 ? EXT_ZBPBO : EXT_ZBB, EXT_ZBB);
reg_t x = xlen;
for (int i = 0; i < xlen; i++)
  if (1 & (RS1 >> (xlen-i-1))) { x = i; break; }
WRITE_RD(sext_xlen(x));