LCOV - code coverage report
Current view: top level - asmjit - a64rapass_p.h (source / functions) Hit Total Coverage
Test: plumed test coverage (other modules) Lines: 0 1 0.0 %
Date: 2026-11-05 10:19:06 Functions: 0 0 -

          Line data    Source code
       1             : #ifdef __PLUMED_HAS_ASMJIT
       2             : // This file is part of AsmJit project <https://asmjit.com>
       3             : //
       4             : // See asmjit.h or LICENSE.md for license and copyright information
       5             : // SPDX-License-Identifier: Zlib
       6             : 
       7             : #ifndef ASMJIT_ARM_A64RAPASS_P_H_INCLUDED
       8             : #define ASMJIT_ARM_A64RAPASS_P_H_INCLUDED
       9             : 
      10             : #include "api-config.h"
      11             : #ifndef ASMJIT_NO_COMPILER
      12             : 
      13             : #include "compiler.h"
      14             : #include "rabuilders_p.h"
      15             : #include "rapass_p.h"
      16             : #include "a64assembler.h"
      17             : #include "a64compiler.h"
      18             : #include "a64emithelper_p.h"
      19             : 
      20             : ASMJIT_BEGIN_SUB_NAMESPACE(a64)
      21             : 
      22             : //! \cond INTERNAL
      23             : //! \addtogroup asmjit_a64
      24             : //! \{
      25             : 
      26             : //! ARM register allocation pass.
      27             : //!
      28             : //! Takes care of generating function prologs and epilogs, and also performs
      29             : //! register allocation.
      30             : class ARMRAPass : public BaseRAPass {
      31             : public:
      32             :   ASMJIT_NONCOPYABLE(ARMRAPass)
      33             :   typedef BaseRAPass Base;
      34             : 
      35             :   EmitHelper _emitHelper;
      36             : 
      37             :   //! \name Construction & Destruction
      38             :   //! \{
      39             : 
      40             :   ARMRAPass() noexcept;
      41             :   virtual ~ARMRAPass() noexcept;
      42             : 
      43             :   //! \}
      44             : 
      45             :   //! \name Accessors
      46             :   //! \{
      47             : 
      48             :   //! Returns the compiler casted to `arm::Compiler`.
      49           0 :   inline Compiler* cc() const noexcept { return static_cast<Compiler*>(_cb); }
      50             : 
      51             :   //! Returns emit helper.
      52             :   inline EmitHelper* emitHelper() noexcept { return &_emitHelper; }
      53             : 
      54             :   //! \}
      55             : 
      56             :   //! \name Events
      57             :   //! \{
      58             : 
      59             :   void onInit() noexcept override;
      60             :   void onDone() noexcept override;
      61             : 
      62             :   //! \}
      63             : 
      64             :   //! \name CFG
      65             :   //! \{
      66             : 
      67             :   Error buildCFG() noexcept override;
      68             : 
      69             :   //! \}
      70             : 
      71             :   //! \name Rewrite
      72             :   //! \{
      73             : 
      74             :   Error _rewrite(BaseNode* first, BaseNode* stop) noexcept override;
      75             : 
      76             :   //! \}
      77             : 
      78             :   //! \name Prolog & Epilog
      79             :   //! \{
      80             : 
      81             :   Error updateStackFrame() noexcept override;
      82             : 
      83             :   //! \}
      84             : 
      85             :   //! \name Emit Helpers
      86             :   //! \{
      87             : 
      88             :   Error emitMove(uint32_t workId, uint32_t dstPhysId, uint32_t srcPhysId) noexcept override;
      89             :   Error emitSwap(uint32_t aWorkId, uint32_t aPhysId, uint32_t bWorkId, uint32_t bPhysId) noexcept override;
      90             : 
      91             :   Error emitLoad(uint32_t workId, uint32_t dstPhysId) noexcept override;
      92             :   Error emitSave(uint32_t workId, uint32_t srcPhysId) noexcept override;
      93             : 
      94             :   Error emitJump(const Label& label) noexcept override;
      95             :   Error emitPreCall(InvokeNode* invokeNode) noexcept override;
      96             : 
      97             :   //! \}
      98             : };
      99             : 
     100             : //! \}
     101             : //! \endcond
     102             : 
     103             : ASMJIT_END_SUB_NAMESPACE
     104             : 
     105             : #endif // !ASMJIT_NO_COMPILER
     106             : #endif // ASMJIT_ARM_A64RAPASS_P_H_INCLUDED
     107             : 
     108             : #endif // __PLUMED_HAS_ASMJIT

Generated by: LCOV version 1.16