A64: Implement AESD

This commit is contained in:
Lioncash
2018-02-03 17:20:21 -05:00
committed by MerryMage
parent ccef85dbb7
commit 40614202e7
8 changed files with 92 additions and 10 deletions

View File

@@ -8,11 +8,21 @@
namespace Dynarmic::A64 {
bool TranslatorVisitor::AESD(Vec Vn, Vec Vd) {
const IR::U128 operand1 = ir.GetQ(Vd);
const IR::U128 operand2 = ir.GetQ(Vn);
const IR::U128 result = ir.AESDecryptSingleRound(ir.VectorEor(operand1, operand2));
ir.SetQ(Vd, result);
return true;
}
bool TranslatorVisitor::AESE(Vec Vn, Vec Vd) {
const IR::U128 operand1 = ir.GetQ(Vd);
const IR::U128 operand2 = ir.GetQ(Vn);
const IR::U128 result = ir.AESEncrypt(ir.VectorEor(operand1, operand2));
const IR::U128 result = ir.AESEncryptSingleRound(ir.VectorEor(operand1, operand2));
ir.SetQ(Vd, result);
return true;