Skip to content

Commit

Permalink
target/riscv: Use aesdec_IMC
Browse files Browse the repository at this point in the history
This implements the AES64IM instruction.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
  • Loading branch information
rth7680 committed Jul 9, 2023
1 parent 7a70583 commit 607a5f9
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions target/riscv/crypto_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,17 +272,12 @@ target_ulong HELPER(aes64ks1i)(target_ulong rs1, target_ulong rnum)

target_ulong HELPER(aes64im)(target_ulong rs1)
{
uint64_t RS1 = rs1;
uint32_t col_0 = RS1 & 0xFFFFFFFF;
uint32_t col_1 = RS1 >> 32;
target_ulong result;

col_0 = AES_INVMIXCOLUMN(col_0);
col_1 = AES_INVMIXCOLUMN(col_1);

result = ((uint64_t)col_1 << 32) | col_0;
AESState t;

return result;
t.d[HOST_BIG_ENDIAN] = rs1;
t.d[!HOST_BIG_ENDIAN] = 0;
aesdec_IMC(&t, &t, false);
return t.d[HOST_BIG_ENDIAN];
}

target_ulong HELPER(sm4ed)(target_ulong rs1, target_ulong rs2,
Expand Down

0 comments on commit 607a5f9

Please sign in to comment.