aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/sm3p0.h
blob: 0a72a930c877832c701e015cdea66e5559d8d7aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14

require_extension(EXT_ZKSH);

#define ROL32(a,amt) ((a >> (-amt & (32-1))) | (a << (amt & (32-1))))

uint32_t src    = RS1;
uint32_t result = src ^ ROL32(src, 9) ^ ROL32(src, 17);

WRITE_RD(
    sext32(result)
);

#undef ROL32