Skip to content

Commit

Permalink
RISC-V: move FOR_EACH_*_REGISTER() macros to OMRLinkage.hpp
Browse files Browse the repository at this point in the history
This makes them available for use in other linkages too.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
  • Loading branch information
janvrany committed Apr 7, 2021
1 parent 5a080e6 commit bfa41af
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 34 deletions.
33 changes: 33 additions & 0 deletions compiler/riscv/codegen/OMRLinkage.hpp
Expand Up @@ -79,6 +79,39 @@ class RVMemoryArgument
#define CallerAllocatesBackingStore 0x20
#define RV_Reserved 0x40

#define FOR_EACH_REGISTER(machine, block) \
for (int regNum = TR::RealRegister::FirstGPR; regNum <= TR::RealRegister::LastGPR; regNum++) \
{ \
TR::RealRegister *reg \
= machine->getRealRegister((TR::RealRegister::RegNum)regNum); \
{ block; } \
} \
for (int regNum = TR::RealRegister::FirstFPR; regNum <= TR::RealRegister::FirstFPR; regNum++) \
{ \
TR::RealRegister *reg \
= machine->getRealRegister((TR::RealRegister::RegNum)regNum); \
{ block; } \
}

#define FOR_EACH_RESERVED_REGISTER(machine, props, block) \
FOR_EACH_REGISTER(machine, \
if (props._registerFlags[(TR::RealRegister::RegNum)regNum] & RV_Reserved) \
{ block; } \
)

#define FOR_EACH_CALLEE_SAVED_REGISTER(machine, props, block) \
FOR_EACH_REGISTER(machine, \
if (props._registerFlags[(TR::RealRegister::RegNum)regNum] == Preserved) \
{ block; } \
)

#define FOR_EACH_ASSIGNED_CALLEE_SAVED_REGISTER(machine, props, block) \
FOR_EACH_CALLEE_SAVED_REGISTER(machine, props, \
if (reg->getHasBeenAssignedInMethod()) \
{ block; } \
)


struct RVLinkageProperties
{
uint32_t _properties;
Expand Down
34 changes: 0 additions & 34 deletions compiler/riscv/codegen/RVSystemLinkage.cpp
Expand Up @@ -34,39 +34,6 @@
#include "il/ParameterSymbol.hpp"


//getRegisterNumber

#define FOR_EACH_REGISTER(machine, block) \
for (int regNum = TR::RealRegister::x0; regNum <= TR::RealRegister::x31; regNum++) \
{ \
TR::RealRegister *reg \
= machine->getRealRegister((TR::RealRegister::RegNum)regNum); \
{ block; } \
} \
for (int regNum = TR::RealRegister::f0; regNum <= TR::RealRegister::f31; regNum++) \
{ \
TR::RealRegister *reg \
= machine->getRealRegister((TR::RealRegister::RegNum)regNum); \
{ block; } \
}

#define FOR_EACH_RESERVED_REGISTER(machine, props, block) \
FOR_EACH_REGISTER(machine, \
if (props._registerFlags[(TR::RealRegister::RegNum)regNum] & RV_Reserved) \
{ block; } \
)

#define FOR_EACH_CALLEE_SAVED_REGISTER(machine, props, block) \
FOR_EACH_REGISTER(machine, \
if (props._registerFlags[(TR::RealRegister::RegNum)regNum] == Preserved) \
{ block; } \
)

#define FOR_EACH_ASSIGNED_CALLEE_SAVED_REGISTER(machine, props, block) \
FOR_EACH_CALLEE_SAVED_REGISTER(machine, props, \
if (reg->getHasBeenAssignedInMethod()) \
{ block; } \
)
/**
* @brief Adds dependency
*/
Expand All @@ -86,7 +53,6 @@ addDependency(
dep->addPreCondition(vreg, rnum);
dep->addPostCondition(vreg, rnum);
}

TR::RVSystemLinkage::RVSystemLinkage(TR::CodeGenerator *cg)
: TR::Linkage(cg)
{
Expand Down

0 comments on commit bfa41af

Please sign in to comment.