class Name##Instr : public MockInstruction { \
public: \
LocationSummary* MakeLocationSummary(Zone* zone, bool opt) const; \
void EmitNativeCode(FlowGraphCompiler*
compiler); \
virtual intptr_t InputCount() const { \
return Arity; \
} \
}; \
TEST_CASE(LocationsHelpers_##Name) { \
const Location expected_out = ExpectedOut; \
\
const Location allocated_out = AllocatedOut; \
\
Name##Instr* instr =
new Name##Instr(); \
LocationSummary* locs = instr->locs(); \
\
ValidateSummary(locs, expected_out, expected_inputs, expected_temps); \
FillSummary(locs, allocated_out, allocated_inputs, allocated_temps); \
\
instr->EmitNativeCode(nullptr); \
} \
DEFINE_BACKEND(Name, Signature)
ZoneGrowableArray< Location > LocationArray
static LocationArray * MakeLocationArray()
89 : public MockInstruction { \
90 public: \
91 LocationSummary* MakeLocationSummary(Zone* zone, bool opt) const; \
92 void EmitNativeCode(FlowGraphCompiler*
compiler); \
93 virtual intptr_t InputCount() const { \
94 return Arity; \
95 } \
96 }; \
97 TEST_CASE(LocationsHelpers_##Name) { \
98 const Location expected_out = ExpectedOut; \
101 \
102 const Location allocated_out = AllocatedOut; \
105 \
106 Name##Instr* instr =
new Name##Instr(); \
107 LocationSummary* locs = instr->locs(); \
108 \
109 ValidateSummary(locs, expected_out, expected_inputs, expected_temps); \
110 FillSummary(locs, allocated_out, allocated_inputs, allocated_temps); \
111 \
112 instr->EmitNativeCode(nullptr); \
113 } \
114 DEFINE_BACKEND(Name, Signature)