From a324990315c3588a001ab0c1bca03b367359ce5c Mon Sep 17 00:00:00 2001 From: Tim Haines Date: Tue, 14 Jan 2025 11:10:04 -0600 Subject: [PATCH] Add aarch64 flag base register tests --- MachRegister/base_registers/aarch64.cpp | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/MachRegister/base_registers/aarch64.cpp b/MachRegister/base_registers/aarch64.cpp index 7eaccfd..97988cb 100644 --- a/MachRegister/base_registers/aarch64.cpp +++ b/MachRegister/base_registers/aarch64.cpp @@ -41,5 +41,35 @@ int main() { BASEREG_CHECK(aarch64::sp, aarch64::sp); BASEREG_CHECK(aarch64::xzr, aarch64::xzr); + // Condition flags + BASEREG_CHECK(aarch64::nzcv, aarch64::nzcv); + BASEREG_CHECK(aarch64::n, aarch64::nzcv); + BASEREG_CHECK(aarch64::z, aarch64::nzcv); + BASEREG_CHECK(aarch64::c, aarch64::nzcv); + BASEREG_CHECK(aarch64::v, aarch64::nzcv); + + // Interrupt Mask Bits + BASEREG_CHECK(aarch64::daif, aarch64::daif); + BASEREG_CHECK(aarch64::d, aarch64::daif); + BASEREG_CHECK(aarch64::a, aarch64::daif); + BASEREG_CHECK(aarch64::i, aarch64::daif); + BASEREG_CHECK(aarch64::f_, aarch64::daif); + + // Process state flags + BASEREG_CHECK(aarch64::pstate, aarch64::pstate); + BASEREG_CHECK(aarch64::allint, aarch64::pstate); + BASEREG_CHECK(aarch64::currentel, aarch64::pstate); + BASEREG_CHECK(aarch64::dit, aarch64::pstate); + BASEREG_CHECK(aarch64::pan, aarch64::pstate); + BASEREG_CHECK(aarch64::pm, aarch64::pstate); + BASEREG_CHECK(aarch64::spsel, aarch64::pstate); + BASEREG_CHECK(aarch64::ssbs, aarch64::pstate); + BASEREG_CHECK(aarch64::svcr, aarch64::pstate); + BASEREG_CHECK(aarch64::tco, aarch64::pstate); + BASEREG_CHECK(aarch64::uao, aarch64::pstate); + + // Floating-point control flags + BASEREG_CHECK(aarch64::fpcr, aarch64::fpcr); + return EXIT_SUCCESS; }