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

require_extension('K');

#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