aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/sm3p1.h
blob: ce3e36c7d0f110bcf93a994e672d2e8a7bf87554 (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, 15) ^ ROL32(src, 23);

WRITE_RD(
    sext32(result)
);

#undef ROL32