Index: src/compiler/instruction-selector-impl.h |
diff --git a/src/compiler/instruction-selector-impl.h b/src/compiler/instruction-selector-impl.h |
index 6421b23c739d46598c8085892546d64e37a532c8..e730866982c671c73b2175ff00a3bc2f3febdf93 100644 |
--- a/src/compiler/instruction-selector-impl.h |
+++ b/src/compiler/instruction-selector-impl.h |
@@ -346,22 +346,27 @@ class FlagsContinuation V8_FINAL { |
// TODO(bmeurer): Get rid of the CallBuffer business and make |
// InstructionSelector::VisitCall platform independent instead. |
struct CallBuffer { |
- CallBuffer(Zone* zone, CallDescriptor* descriptor); |
+ CallBuffer(Zone* zone, CallDescriptor* descriptor, |
+ FrameStateDescriptor* frame_state); |
- int output_count; |
CallDescriptor* descriptor; |
- Node** output_nodes; |
- InstructionOperand** outputs; |
- InstructionOperand** fixed_and_control_args; |
- int fixed_count; |
- Node** pushed_nodes; |
- int pushed_count; |
+ FrameStateDescriptor* frame_state_descriptor; |
+ std::vector<Node*> output_nodes; |
Benedikt Meurer
2014/08/21 08:19:29
Can we allocate in the Zone instead? I.e. use zone
Jarin
2014/08/21 09:54:42
Done.
|
+ std::vector<InstructionOperand*> outputs; |
+ std::vector<InstructionOperand*> instruction_args; |
+ std::vector<Node*> pushed_nodes; |
int input_count() { return descriptor->InputCount(); } |
Benedikt Meurer
2014/08/21 08:19:29
const
Jarin
2014/08/21 09:54:41
Done.
|
- int control_count() { return descriptor->CanLazilyDeoptimize() ? 2 : 0; } |
+ int frame_state_count() { return descriptor->FrameStateCount(); } |
Benedikt Meurer
2014/08/21 08:19:29
const
Jarin
2014/08/21 09:54:42
Done.
|
+ |
+ int frame_state_value_count() { |
Benedikt Meurer
2014/08/21 08:19:29
const
Jarin
2014/08/21 09:54:41
Done.
|
+ return (frame_state_descriptor == NULL) |
+ ? 0 |
+ : (frame_state_descriptor->size() + 1); |
+ } |
- int fixed_and_control_count() { return fixed_count + control_count(); } |
+ int control_count() { return descriptor->CanLazilyDeoptimize() ? 2 : 0; } |
}; |
} // namespace compiler |