Index: src/compiler/code-generator.cc |
diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc |
index 71f9604d7ff206d03a464ce5eff2c3f828ca7c3e..08a7d2ef081eddad742fda6a2874b9b45a30e051 100644 |
--- a/src/compiler/code-generator.cc |
+++ b/src/compiler/code-generator.cc |
@@ -153,9 +153,11 @@ Handle<Code> CodeGenerator::GenerateCode() { |
} |
} |
- for (int i = block->code_start(); i < block->code_end(); ++i) { |
- Instruction* instr = code()->InstructionAt(i); |
- AssembleInstruction(instr, block); |
+ if (FLAG_enable_embedded_constant_pool && !block->needs_frame()) { |
+ ConstantPoolUnavailableScope constant_pool_unavailable(masm()); |
+ AssembleBlock(block); |
+ } else { |
+ AssembleBlock(block); |
} |
} |
} |
@@ -300,6 +302,13 @@ bool CodeGenerator::IsMaterializableFromRoot( |
return false; |
} |
+void CodeGenerator::AssembleBlock(const InstructionBlock* block) { |
+ for (int i = block->code_start(); i < block->code_end(); ++i) { |
+ Instruction* instr = code()->InstructionAt(i); |
+ AssembleInstruction(instr, block); |
+ } |
+} |
+ |
void CodeGenerator::AssembleInstruction(Instruction* instr, |
const InstructionBlock* block) { |
AssembleGaps(instr); |