From 3d14e1d1134eb5d50650b6f38ef9e658c5d08ca4 Mon Sep 17 00:00:00 2001 From: Tim Haines Date: Thu, 26 Oct 2023 10:52:02 -0500 Subject: [PATCH 1/3] Add missing usages of 'dyn_regs.h' This corresponds to cleanups of its usage in Dyninst. --- src/instruction/aarch64_cft.C | 1 + src/instruction/fucompp.C | 2 ++ src/instruction/power_cft.C | 3 ++- src/instruction/test_instruction_bind_eval.C | 2 +- src/instruction/test_instruction_read_write.C | 2 ++ 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/instruction/aarch64_cft.C b/src/instruction/aarch64_cft.C index 0f14fd62e..d0571ff35 100644 --- a/src/instruction/aarch64_cft.C +++ b/src/instruction/aarch64_cft.C @@ -34,6 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" +#include "dyn_regs.h" #include #include diff --git a/src/instruction/fucompp.C b/src/instruction/fucompp.C index 46c07582d..400fc5e83 100644 --- a/src/instruction/fucompp.C +++ b/src/instruction/fucompp.C @@ -35,6 +35,8 @@ #include "InstructionDecoder.h" #include #include +#include "dyn_regs.h" + using namespace Dyninst; using namespace InstructionAPI; using namespace boost; diff --git a/src/instruction/power_cft.C b/src/instruction/power_cft.C index 8a98a0358..b632035d9 100644 --- a/src/instruction/power_cft.C +++ b/src/instruction/power_cft.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" - +#include "dyn_regs.h" #include #include #include @@ -160,6 +160,7 @@ test_results_t power_cft_Mutator::executeTest() cfts.push_back(cftExpected(true, 0x404, false, false, false, true)); while(!decodedInsns.empty()) { + logerror("Parsing instruction '%s'\n", decodedInsns.front().format().c_str()); (void)(decodedInsns.front().getControlFlowTarget()); for(Instruction::cftConstIter curCFT = decodedInsns.front().cft_begin(); curCFT != decodedInsns.front().cft_end(); diff --git a/src/instruction/test_instruction_bind_eval.C b/src/instruction/test_instruction_bind_eval.C index 01461b92f..e1eb9216f 100644 --- a/src/instruction/test_instruction_bind_eval.C +++ b/src/instruction/test_instruction_bind_eval.C @@ -35,7 +35,7 @@ #include "InstructionDecoder.h" #include "Expression.h" #include "Result.h" - +#include "dyn_regs.h" #include #include diff --git a/src/instruction/test_instruction_read_write.C b/src/instruction/test_instruction_read_write.C index 4cbaef98c..4084b8984 100644 --- a/src/instruction/test_instruction_read_write.C +++ b/src/instruction/test_instruction_read_write.C @@ -35,6 +35,8 @@ #include "InstructionDecoder.h" #include #include +#include "dyn_regs.h" + using namespace Dyninst; using namespace InstructionAPI; using namespace boost; From 480108828e7390e2589fb3f3421325656e37ba0e Mon Sep 17 00:00:00 2001 From: Tim Haines Date: Thu, 26 Oct 2023 15:01:45 -0500 Subject: [PATCH 2/3] Use arch-specific register files --- src/instruction/aarch64_cft.C | 2 +- src/instruction/aarch64_decode.C | 2 +- src/instruction/aarch64_decode_ldst.C | 2 +- src/instruction/aarch64_simd.C | 2 +- src/instruction/fucompp.C | 3 ++- src/instruction/power_cft.C | 2 +- src/instruction/power_decode.C | 2 +- src/instruction/test_instruction_bind_eval.C | 12 +++++++++++- src/instruction/test_instruction_read_write.C | 4 +++- 9 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/instruction/aarch64_cft.C b/src/instruction/aarch64_cft.C index d0571ff35..8ded9fd74 100644 --- a/src/instruction/aarch64_cft.C +++ b/src/instruction/aarch64_cft.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/aarch64/aarch64_regs.h" #include #include diff --git a/src/instruction/aarch64_decode.C b/src/instruction/aarch64_decode.C index bf7103bd4..c66e84eb6 100644 --- a/src/instruction/aarch64_decode.C +++ b/src/instruction/aarch64_decode.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/aarch64/aarch64_regs.h" #include #include #include diff --git a/src/instruction/aarch64_decode_ldst.C b/src/instruction/aarch64_decode_ldst.C index 3bc4f426a..f414d8ff1 100644 --- a/src/instruction/aarch64_decode_ldst.C +++ b/src/instruction/aarch64_decode_ldst.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/aarch64/aarch64_regs.h" #include #include #include diff --git a/src/instruction/aarch64_simd.C b/src/instruction/aarch64_simd.C index 36431604d..3772056c7 100644 --- a/src/instruction/aarch64_simd.C +++ b/src/instruction/aarch64_simd.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/aarch64/aarch64_regs.h" #include #include #include diff --git a/src/instruction/fucompp.C b/src/instruction/fucompp.C index 400fc5e83..6b784b1a8 100644 --- a/src/instruction/fucompp.C +++ b/src/instruction/fucompp.C @@ -35,7 +35,8 @@ #include "InstructionDecoder.h" #include #include -#include "dyn_regs.h" +#include "Architecture.h" +#include "registers/x86_regs.h" using namespace Dyninst; using namespace InstructionAPI; diff --git a/src/instruction/power_cft.C b/src/instruction/power_cft.C index b632035d9..612a3a86b 100644 --- a/src/instruction/power_cft.C +++ b/src/instruction/power_cft.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/ppc32_regs.h" #include #include #include diff --git a/src/instruction/power_decode.C b/src/instruction/power_decode.C index cc6e510bd..f1cbe87fa 100644 --- a/src/instruction/power_decode.C +++ b/src/instruction/power_decode.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "dyn_regs.h" +#include "registers/ppc32_regs.h" #include #include #include diff --git a/src/instruction/test_instruction_bind_eval.C b/src/instruction/test_instruction_bind_eval.C index e1eb9216f..5e15aeb8b 100644 --- a/src/instruction/test_instruction_bind_eval.C +++ b/src/instruction/test_instruction_bind_eval.C @@ -35,10 +35,20 @@ #include "InstructionDecoder.h" #include "Expression.h" #include "Result.h" -#include "dyn_regs.h" +#include "Architecture.h" #include #include +#if defined(arch_x86_64_test) +# include "registers/x86_64_regs.h" + Dyninst::Architecture curArch = Dyninst::Arch_x86_64; + using namespace Dyninst::x86_64; +#elif defined(arch_x86_test) +# include "registers/x86_regs.h" + Dyninst::Architecture curArch = Dyninst::Arch_x86; + using namespace Dyninst::x86; +#endif + using namespace Dyninst; using namespace InstructionAPI; using namespace boost::assign; diff --git a/src/instruction/test_instruction_read_write.C b/src/instruction/test_instruction_read_write.C index 4084b8984..4d0398b21 100644 --- a/src/instruction/test_instruction_read_write.C +++ b/src/instruction/test_instruction_read_write.C @@ -35,7 +35,9 @@ #include "InstructionDecoder.h" #include #include -#include "dyn_regs.h" +#include "Architecture.h" +#include "registers/x86_regs.h" +#include "registers/x86_64_regs.h" using namespace Dyninst; using namespace InstructionAPI; From ebbead2f806a2e4a16cfe3025255a52a67989f1c Mon Sep 17 00:00:00 2001 From: Tim Haines Date: Fri, 27 Oct 2023 16:10:08 -0500 Subject: [PATCH 3/3] Remove aarch64 subdir --- src/instruction/aarch64_cft.C | 2 +- src/instruction/aarch64_decode.C | 2 +- src/instruction/aarch64_decode_ldst.C | 2 +- src/instruction/aarch64_simd.C | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/instruction/aarch64_cft.C b/src/instruction/aarch64_cft.C index 8ded9fd74..745f3d82d 100644 --- a/src/instruction/aarch64_cft.C +++ b/src/instruction/aarch64_cft.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "registers/aarch64/aarch64_regs.h" +#include "registers/aarch64_regs.h" #include #include diff --git a/src/instruction/aarch64_decode.C b/src/instruction/aarch64_decode.C index c66e84eb6..947cdd1f4 100644 --- a/src/instruction/aarch64_decode.C +++ b/src/instruction/aarch64_decode.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "registers/aarch64/aarch64_regs.h" +#include "registers/aarch64_regs.h" #include #include #include diff --git a/src/instruction/aarch64_decode_ldst.C b/src/instruction/aarch64_decode_ldst.C index f414d8ff1..999db6e58 100644 --- a/src/instruction/aarch64_decode_ldst.C +++ b/src/instruction/aarch64_decode_ldst.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "registers/aarch64/aarch64_regs.h" +#include "registers/aarch64_regs.h" #include #include #include diff --git a/src/instruction/aarch64_simd.C b/src/instruction/aarch64_simd.C index 3772056c7..09b7e27d8 100644 --- a/src/instruction/aarch64_simd.C +++ b/src/instruction/aarch64_simd.C @@ -34,7 +34,7 @@ #include "Instruction.h" #include "InstructionDecoder.h" #include "Register.h" -#include "registers/aarch64/aarch64_regs.h" +#include "registers/aarch64_regs.h" #include #include #include