Implement AESMC, AESIMC, AESE, AESD and VEOR AArch32 instructions (#982)

* Add VEOR and AES instructions.

* Add tests for crypto instructions.

* Update ValueSource name.
This commit is contained in:
riperiperi 2020-03-13 23:29:58 +00:00 committed by GitHub
parent ff2bac9c90
commit dd433c1296
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 239 additions and 14 deletions

View file

@ -164,11 +164,11 @@ namespace Ryujinx.Tests.Cpu
}
}
protected void ExecuteOpcodes()
protected void ExecuteOpcodes(bool runUnicorn = true)
{
_translator.Execute(_context, _entryPoint);
if (_unicornAvailable)
if (_unicornAvailable && runUnicorn)
{
_unicornEmu.RunForCount((ulong)(_currAddress - _entryPoint - 4) / 4);
}
@ -193,7 +193,8 @@ namespace Ryujinx.Tests.Cpu
bool zero = false,
bool negative = false,
int fpscr = 0,
bool copyFpFlags = false)
bool copyFpFlags = false,
bool runUnicorn = true)
{
Opcode(opcode);
if (copyFpFlags)
@ -202,7 +203,7 @@ namespace Ryujinx.Tests.Cpu
}
Opcode(0xe12fff1e); // BX LR
SetContext(r0, r1, r2, r3, sp, v0, v1, v2, v3, v4, v5, v14, v15, overflow, carry, zero, negative, fpscr);
ExecuteOpcodes();
ExecuteOpcodes(runUnicorn);
return GetContext();
}