| Index: courgette/adjustment_method_unittest.cc
|
| diff --git a/courgette/adjustment_method_unittest.cc b/courgette/adjustment_method_unittest.cc
|
| index d8b987c2d89e1ac6be8abe036bfa13f72f5ea31b..2ca8e58cb2c80d7f8dea54a2d9c73b7fb51db620 100644
|
| --- a/courgette/adjustment_method_unittest.cc
|
| +++ b/courgette/adjustment_method_unittest.cc
|
| @@ -49,12 +49,26 @@ class AdjustmentMethodTest : public testing::Test {
|
| courgette::Label* labelA = prog->FindAbs32Label(kRvaA);
|
| courgette::Label* labelB = prog->FindAbs32Label(kRvaB);
|
|
|
| - EXPECT_TRUE(prog->EmitAbs32(labelA));
|
| - EXPECT_TRUE(prog->EmitAbs32(labelA));
|
| - EXPECT_TRUE(prog->EmitAbs32(labelB));
|
| - EXPECT_TRUE(prog->EmitAbs32(labelA));
|
| - EXPECT_TRUE(prog->EmitAbs32(labelA));
|
| - EXPECT_TRUE(prog->EmitAbs32(labelB));
|
| + auto emit_all = [](courgette::Label* labelA, courgette::Label* labelB,
|
| + courgette::InstructionReceptor* receptor) {
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelA));
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelA));
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelB));
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelA));
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelA));
|
| + EXPECT_TRUE(receptor->EmitAbs32(labelB));
|
| + };
|
| +
|
| + // Pass 1: Count the space needed to store instructions.
|
| + courgette::InstructionCountReceptor* count_receptor = nullptr;
|
| + EXPECT_TRUE(prog->CreateInstructionCountReceptor(&count_receptor));
|
| + emit_all(labelA, labelB, count_receptor);
|
| +
|
| + // Pass 2: Emit all instructions to preallocated buffer (uses Phase 1
|
| + // count).
|
| + courgette::InstructionStoreReceptor* store_receptor = nullptr;
|
| + EXPECT_TRUE(prog->CreateInstructionStoreReceptor(&store_receptor));
|
| + emit_all(labelA, labelB, store_receptor);
|
|
|
| if (kind == 0) {
|
| labelA->index_ = 0;
|
|
|