source: rtems-tools/tester/covoar/Target_aarch64.h @ 0c4884a

Last change on this file since 0c4884a was 0c4884a, checked in by Alex White <alex.white@…>, on Apr 16, 2021 at 6:24:15 PM

covoar/Target_aarch64: Swap QEMU taken/not taken bits

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

Closes #4387

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/*! @file Target_aarch64.h
2 *  @brief Target_aarch64 Specification
3 *
4 *  This file contains the specification of the Target_aarch64 class.
5 */
6
7#ifndef __TARGET_AARCH64_H__
8#define __TARGET_AARCH64_H__
9
10#include <list>
11#include <string>
12#include "TargetBase.h"
13
14namespace Target {
15
16  /*! @class Target_aarch64
17   *
18   *  This class is the Target class for the aarch64 processor.
19   *
20   */
21  class Target_aarch64: public TargetBase {
22
23  public:
24
25    /*!
26     *  This method constructs an Target_aarch64 instance.
27     */
28    Target_aarch64( std::string targetName );
29
30    /*!
31     *  This method destructs an Target_aarch64 instance.
32     */
33    virtual ~Target_aarch64();
34
35    /*!
36     *  This method determines whether the specified line from a
37     *  objdump file is a nop instruction.
38     *
39     *  @param[in] line contains the object dump line to check
40     *  @param[out] size is set to the size in bytes of the nop
41     *
42     *  @return Returns TRUE if the instruction is a nop, FALSE otherwise.
43     */
44    bool isNopLine(
45      const char* const line,
46      int&              size
47    );
48
49    /*!
50     *  This method determines if the specified line from an
51     *  objdump file is a branch instruction.
52     */
53    bool isBranch(
54      const char* const instruction
55    );
56
57    /* Documentation inherited from base class */
58    uint8_t qemuTakenBit() override;
59
60    /* Documentation inherited from base class */
61    uint8_t qemuNotTakenBit() override;
62
63  private:
64
65  };
66
67  //!
68  //! @brief Constructor Helper
69  //!
70  //! This is a constructor helper for this class which can be used in support
71  //! of factories.
72  //!
73  //! @param [in] Targetname is the name of the Target being constructed.
74  //!
75  //! @return This method constructs a new instance of the Target and returns
76  //!         that to the caller.
77  //!
78  TargetBase *Target_aarch64_Constructor(
79    std::string          targetName
80  );
81
82}
83#endif
Note: See TracBrowser for help on using the repository browser.