A64: Implement SVC
This commit is contained in:
parent
9e27e4d250
commit
2aadeec291
1 changed files with 22 additions and 0 deletions
22
src/frontend/A64/translate/impl/exception_generating.cpp
Normal file
22
src/frontend/A64/translate/impl/exception_generating.cpp
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* This file is part of the dynarmic project.
|
||||
* Copyright (c) 2018 MerryMage
|
||||
* This software may be used and distributed according to the terms of the GNU
|
||||
* General Public License version 2 or any later version.
|
||||
*/
|
||||
|
||||
#include "frontend/A64/translate/impl/impl.h"
|
||||
|
||||
namespace Dynarmic {
|
||||
namespace A64 {
|
||||
|
||||
bool TranslatorVisitor::SVC(Imm<16> imm16) {
|
||||
printf("translator %x\n", imm16.ZeroExtend());
|
||||
// ir.PushRSB(ir.current_location.AdvancePC(4)); // TODO
|
||||
ir.SetPC(ir.Imm64(ir.current_location.PC() + 4));
|
||||
ir.CallSupervisor(imm16.ZeroExtend());
|
||||
ir.SetTerm(IR::Term::CheckHalt{IR::Term::PopRSBHint{}});
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace A64
|
||||
} // namespace Dynarmic
|
Loading…
Reference in a new issue