Index: src/interpreter/bytecode-array-builder.h |
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h |
index 5f90f9ec7feebc921752e68eabdaa4c8c4ec1ed7..60b9765b54889d820047920f4d0bdee28baa79a2 100644 |
--- a/src/interpreter/bytecode-array-builder.h |
+++ b/src/interpreter/bytecode-array-builder.h |
@@ -30,19 +30,31 @@ class BytecodeArrayBuilder { |
// Set number of parameters expected by function. |
void set_parameter_count(int number_of_params); |
- int parameter_count() const; |
+ int parameter_count() const { |
+ DCHECK_GE(parameter_count_, 0); |
+ return parameter_count_; |
+ } |
// Set number of locals required for bytecode array. |
void set_locals_count(int number_of_locals); |
- int locals_count() const; |
+ int locals_count() const { |
+ DCHECK_GE(local_register_count_, 0); |
+ return local_register_count_; |
+ } |
// Set number of contexts required for bytecode array. |
void set_context_count(int number_of_contexts); |
- int context_count() const; |
+ int context_count() const { |
+ DCHECK_GE(context_register_count_, 0); |
+ return context_register_count_; |
+ } |
Register first_context_register() const; |
Register last_context_register() const; |
+ // Returns the number of fixed (non-temporary) registers. |
+ int fixed_register_count() const { return context_count() + locals_count(); } |
+ |
Register Parameter(int parameter_index) const; |
// Constant loads to the accumulator. |
@@ -61,6 +73,9 @@ class BytecodeArrayBuilder { |
// Load the object at |slot_index| in |context| into the accumulator. |
BytecodeArrayBuilder& LoadContextSlot(Register context, int slot_index); |
+ // Stores the object in the accumulator into |slot_index| of |context|. |
+ BytecodeArrayBuilder& StoreContextSlot(Register context, int slot_index); |
+ |
// Register-accumulator transfers. |
BytecodeArrayBuilder& LoadAccumulatorWithRegister(Register reg); |
BytecodeArrayBuilder& StoreAccumulatorInRegister(Register reg); |