Index: runtime/vm/flow_graph_compiler.cc |
diff --git a/runtime/vm/flow_graph_compiler.cc b/runtime/vm/flow_graph_compiler.cc |
index 29d1169c56ca2f0fecbb3baab3aa2b020094dd76..0dad4fd6d2f3b9d2d692a05d04c7ec167bd2b4d3 100644 |
--- a/runtime/vm/flow_graph_compiler.cc |
+++ b/runtime/vm/flow_graph_compiler.cc |
@@ -1201,15 +1201,19 @@ static Register AllocateFreeRegister(bool* blocked_registers) { |
} |
-#define REG_MASK_BIT(reg) (((reg) != kNoRegister) ? (1 << (reg)) : 0) |
+static uword RegMaskBit(Register reg) { |
+ return ((reg) != kNoRegister) ? (1 << (reg)) : 0; |
+} |
+ |
+ |
// Mask of globally reserved registers. Some other registers are only reserved |
// in particular code (e.g., ARGS_DESC_REG in intrinsics). |
-static const uword kReservedCpuRegisters = REG_MASK_BIT(SPREG) |
- | REG_MASK_BIT(FPREG) |
- | REG_MASK_BIT(TMP) |
- | REG_MASK_BIT(TMP2) |
- | REG_MASK_BIT(PP) |
- | REG_MASK_BIT(THR); |
+static const uword kReservedCpuRegisters = RegMaskBit(SPREG) |
+ | RegMaskBit(FPREG) |
+ | RegMaskBit(TMP) |
+ | RegMaskBit(TMP2) |
+ | RegMaskBit(PP) |
+ | RegMaskBit(THR); |
void FlowGraphCompiler::AllocateRegistersLocally(Instruction* instr) { |
@@ -1516,10 +1520,10 @@ ParallelMoveResolver::ScratchRegisterScope::ScratchRegisterScope( |
: resolver_(resolver), |
reg_(kNoRegister), |
spilled_(false) { |
- uword blocked_mask = REG_MASK_BIT(blocked) | kReservedCpuRegisters; |
+ uword blocked_mask = RegMaskBit(blocked) | kReservedCpuRegisters; |
if (resolver->compiler_->intrinsic_mode()) { |
// Block additional registers that must be preserved for intrinsics. |
- blocked_mask |= REG_MASK_BIT(ARGS_DESC_REG); |
+ blocked_mask |= RegMaskBit(ARGS_DESC_REG); |
} |
reg_ = static_cast<Register>( |
resolver_->AllocateScratchRegister(Location::kRegister, |