Don't decode blocks starting outside mapped memory & undefined instead of throw on invalid sysreg coprocessor (#964)

* Don't decode blocks in invalid memory locations.

* Emit undefined instruction on invalid coprocessor

...rather than throwing.

* Call undefined instruction directly.
This commit is contained in:
gdkchan 2020-03-04 16:25:27 -03:00 committed by GitHub
parent 34dbc7da9e
commit 0e0fa62e52
2 changed files with 7 additions and 4 deletions

View file

@ -47,7 +47,7 @@ namespace ARMeilleure.Decoders
{
if (!visited.TryGetValue(blkAddress, out Block block))
{
if (opsCount > MaxInstsPerFunction)
if (opsCount > MaxInstsPerFunction || !memory.IsMapped((long)blkAddress))
{
return null;
}