aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/aes64ks2.h
blob: 65d5a77c33b56ca9321b6a35ed550860ceafcddb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

#include "aes_common.h"

require_rv64;
require_either_extension(EXT_ZKND, EXT_ZKNE);

uint32_t    rs1_hi  =  RS1 >> 32;
uint32_t    rs2_lo  =  RS2      ;
uint32_t    rs2_hi  =  RS2 >> 32;

uint32_t    r_lo    = (rs1_hi ^ rs2_lo         ) ;
uint32_t    r_hi    = (rs1_hi ^ rs2_lo ^ rs2_hi) ;
uint64_t    result  =  ((uint64_t)r_hi << 32) | r_lo ;

WRITE_RD(result);