| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 5 #ifndef V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 6 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| 7 | 7 |
| 8 #include "src/ast/ast.h" | 8 #include "src/ast/ast.h" |
| 9 #include "src/interpreter/bytecode-register-allocator.h" | 9 #include "src/interpreter/bytecode-register-allocator.h" |
| 10 #include "src/interpreter/bytecodes.h" | 10 #include "src/interpreter/bytecodes.h" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 | 107 |
| 108 // Register-accumulator transfers. | 108 // Register-accumulator transfers. |
| 109 BytecodeArrayBuilder& LoadAccumulatorWithRegister(Register reg); | 109 BytecodeArrayBuilder& LoadAccumulatorWithRegister(Register reg); |
| 110 BytecodeArrayBuilder& StoreAccumulatorInRegister(Register reg); | 110 BytecodeArrayBuilder& StoreAccumulatorInRegister(Register reg); |
| 111 | 111 |
| 112 // Register-register transfer. | 112 // Register-register transfer. |
| 113 BytecodeArrayBuilder& MoveRegister(Register from, Register to); | 113 BytecodeArrayBuilder& MoveRegister(Register from, Register to); |
| 114 | 114 |
| 115 // Named load property. | 115 // Named load property. |
| 116 BytecodeArrayBuilder& LoadNamedProperty(Register object, | 116 BytecodeArrayBuilder& LoadNamedProperty(Register object, |
| 117 const Handle<String> name, | 117 const Handle<Name> name, |
| 118 int feedback_slot, | 118 int feedback_slot, |
| 119 LanguageMode language_mode); | 119 LanguageMode language_mode); |
| 120 // Keyed load property. The key should be in the accumulator. | 120 // Keyed load property. The key should be in the accumulator. |
| 121 BytecodeArrayBuilder& LoadKeyedProperty(Register object, int feedback_slot, | 121 BytecodeArrayBuilder& LoadKeyedProperty(Register object, int feedback_slot, |
| 122 LanguageMode language_mode); | 122 LanguageMode language_mode); |
| 123 | 123 |
| 124 // Store properties. The value to be stored should be in the accumulator. | 124 // Store properties. The value to be stored should be in the accumulator. |
| 125 BytecodeArrayBuilder& StoreNamedProperty(Register object, | 125 BytecodeArrayBuilder& StoreNamedProperty(Register object, |
| 126 const Handle<String> name, | 126 const Handle<Name> name, |
| 127 int feedback_slot, | 127 int feedback_slot, |
| 128 LanguageMode language_mode); | 128 LanguageMode language_mode); |
| 129 BytecodeArrayBuilder& StoreKeyedProperty(Register object, Register key, | 129 BytecodeArrayBuilder& StoreKeyedProperty(Register object, Register key, |
| 130 int feedback_slot, | 130 int feedback_slot, |
| 131 LanguageMode language_mode); | 131 LanguageMode language_mode); |
| 132 | 132 |
| 133 // Lookup the variable with |name|. | 133 // Lookup the variable with |name|. |
| 134 BytecodeArrayBuilder& LoadLookupSlot(const Handle<String> name, | 134 BytecodeArrayBuilder& LoadLookupSlot(const Handle<String> name, |
| 135 TypeofMode typeof_mode); | 135 TypeofMode typeof_mode); |
| 136 | 136 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 160 // Pop the current context and replace with |context|. | 160 // Pop the current context and replace with |context|. |
| 161 BytecodeArrayBuilder& PopContext(Register context); | 161 BytecodeArrayBuilder& PopContext(Register context); |
| 162 | 162 |
| 163 // Call a JS function. The JSFunction or Callable to be called should be in | 163 // Call a JS function. The JSFunction or Callable to be called should be in |
| 164 // |callable|, the receiver should be in |receiver_args| and all subsequent | 164 // |callable|, the receiver should be in |receiver_args| and all subsequent |
| 165 // arguments should be in registers <receiver_args + 1> to | 165 // arguments should be in registers <receiver_args + 1> to |
| 166 // <receiver_args + receiver_arg_count - 1>. | 166 // <receiver_args + receiver_arg_count - 1>. |
| 167 BytecodeArrayBuilder& Call(Register callable, Register receiver_args, | 167 BytecodeArrayBuilder& Call(Register callable, Register receiver_args, |
| 168 size_t receiver_arg_count, int feedback_slot); | 168 size_t receiver_arg_count, int feedback_slot); |
| 169 | 169 |
| 170 // Call the new operator. The |constructor| register is followed by | 170 // Call the new operator. The accumulator holds the |new_target|. |
| 171 // |arg_count| consecutive registers containing arguments to be | 171 // The |constructor| is in a register followed by |arg_count| |
| 172 // applied to the constructor. | 172 // consecutive arguments starting at |first_arg| for the constuctor |
| 173 // invocation. |
| 173 BytecodeArrayBuilder& New(Register constructor, Register first_arg, | 174 BytecodeArrayBuilder& New(Register constructor, Register first_arg, |
| 174 size_t arg_count); | 175 size_t arg_count); |
| 175 | 176 |
| 176 // Call the runtime function with |function_id|. The first argument should be | 177 // Call the runtime function with |function_id|. The first argument should be |
| 177 // in |first_arg| and all subsequent arguments should be in registers | 178 // in |first_arg| and all subsequent arguments should be in registers |
| 178 // <first_arg + 1> to <first_arg + arg_count - 1>. | 179 // <first_arg + 1> to <first_arg + arg_count - 1>. |
| 179 BytecodeArrayBuilder& CallRuntime(Runtime::FunctionId function_id, | 180 BytecodeArrayBuilder& CallRuntime(Runtime::FunctionId function_id, |
| 180 Register first_arg, size_t arg_count); | 181 Register first_arg, size_t arg_count); |
| 181 | 182 |
| 182 // Call the runtime function with |function_id| that returns a pair of values. | 183 // Call the runtime function with |function_id| that returns a pair of values. |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 size_t offset_; | 414 size_t offset_; |
| 414 | 415 |
| 415 friend class BytecodeArrayBuilder; | 416 friend class BytecodeArrayBuilder; |
| 416 }; | 417 }; |
| 417 | 418 |
| 418 } // namespace interpreter | 419 } // namespace interpreter |
| 419 } // namespace internal | 420 } // namespace internal |
| 420 } // namespace v8 | 421 } // namespace v8 |
| 421 | 422 |
| 422 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 423 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
| OLD | NEW |