[PATCH] covoar/Target_aarch64: Swap QEMU taken/not taken bits

Alex White alex.white at oarcorp.com
Fri Apr 16 19:25:01 UTC 2021


This overrides the `TargetBase` behavior to allow branches to be marked
correctly as either taken or not taken.

Closes #4387
---
 tester/covoar/Target_aarch64.cc | 11 +++++++++++
 tester/covoar/Target_aarch64.h  |  6 ++++++
 2 files changed, 17 insertions(+)

diff --git a/tester/covoar/Target_aarch64.cc b/tester/covoar/Target_aarch64.cc
index 64472d6..4d16456 100644
--- a/tester/covoar/Target_aarch64.cc
+++ b/tester/covoar/Target_aarch64.cc
@@ -12,6 +12,7 @@
 
 #include <rld.h>
 
+#include "qemu-traces.h"
 #include "Target_aarch64.h"
 
 namespace Target {
@@ -90,6 +91,16 @@ namespace Target {
     );
   }
 
+  uint8_t Target_aarch64::qemuTakenBit()
+  {
+    return TRACE_OP_BR1;
+  }
+
+  uint8_t Target_aarch64::qemuNotTakenBit()
+  {
+    return TRACE_OP_BR0;
+  }
+
   TargetBase *Target_aarch64_Constructor(
     std::string          targetName
   )
diff --git a/tester/covoar/Target_aarch64.h b/tester/covoar/Target_aarch64.h
index 26fedb6..08bd1fb 100644
--- a/tester/covoar/Target_aarch64.h
+++ b/tester/covoar/Target_aarch64.h
@@ -54,6 +54,12 @@ namespace Target {
       const char* const instruction
     );
 
+    /* Documentation inherited from base class */
+    uint8_t qemuTakenBit() override;
+
+    /* Documentation inherited from base class */
+    uint8_t qemuNotTakenBit() override;
+
   private:
 
   };
-- 
2.27.0



More information about the devel mailing list