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 <vector> | 8 #include <vector> |
9 | 9 |
10 #include "src/ast.h" | 10 #include "src/ast.h" |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 BytecodeArrayBuilder& LoadLiteral(v8::internal::Smi* value); | 75 BytecodeArrayBuilder& LoadLiteral(v8::internal::Smi* value); |
76 BytecodeArrayBuilder& LoadLiteral(Handle<Object> object); | 76 BytecodeArrayBuilder& LoadLiteral(Handle<Object> object); |
77 BytecodeArrayBuilder& LoadUndefined(); | 77 BytecodeArrayBuilder& LoadUndefined(); |
78 BytecodeArrayBuilder& LoadNull(); | 78 BytecodeArrayBuilder& LoadNull(); |
79 BytecodeArrayBuilder& LoadTheHole(); | 79 BytecodeArrayBuilder& LoadTheHole(); |
80 BytecodeArrayBuilder& LoadTrue(); | 80 BytecodeArrayBuilder& LoadTrue(); |
81 BytecodeArrayBuilder& LoadFalse(); | 81 BytecodeArrayBuilder& LoadFalse(); |
82 | 82 |
83 // Global loads to the accumulator and stores from the accumulator. | 83 // Global loads to the accumulator and stores from the accumulator. |
84 BytecodeArrayBuilder& LoadGlobal(size_t name_index, int feedback_slot, | 84 BytecodeArrayBuilder& LoadGlobal(size_t name_index, int feedback_slot, |
85 LanguageMode language_mode); | 85 LanguageMode language_mode, |
| 86 TypeofMode typeof_mode); |
86 BytecodeArrayBuilder& StoreGlobal(size_t name_index, int feedback_slot, | 87 BytecodeArrayBuilder& StoreGlobal(size_t name_index, int feedback_slot, |
87 LanguageMode language_mode); | 88 LanguageMode language_mode); |
88 | 89 |
89 // Load the object at |slot_index| in |context| into the accumulator. | 90 // Load the object at |slot_index| in |context| into the accumulator. |
90 BytecodeArrayBuilder& LoadContextSlot(Register context, int slot_index); | 91 BytecodeArrayBuilder& LoadContextSlot(Register context, int slot_index); |
91 | 92 |
92 // Stores the object in the accumulator into |slot_index| of |context|. | 93 // Stores the object in the accumulator into |slot_index| of |context|. |
93 BytecodeArrayBuilder& StoreContextSlot(Register context, int slot_index); | 94 BytecodeArrayBuilder& StoreContextSlot(Register context, int slot_index); |
94 | 95 |
95 // Register-accumulator transfers. | 96 // Register-accumulator transfers. |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 Isolate* isolate() const { return isolate_; } | 202 Isolate* isolate() const { return isolate_; } |
202 | 203 |
203 static Bytecode BytecodeForBinaryOperation(Token::Value op); | 204 static Bytecode BytecodeForBinaryOperation(Token::Value op); |
204 static Bytecode BytecodeForCountOperation(Token::Value op); | 205 static Bytecode BytecodeForCountOperation(Token::Value op); |
205 static Bytecode BytecodeForCompareOperation(Token::Value op); | 206 static Bytecode BytecodeForCompareOperation(Token::Value op); |
206 static Bytecode BytecodeForWideOperands(Bytecode bytecode); | 207 static Bytecode BytecodeForWideOperands(Bytecode bytecode); |
207 static Bytecode BytecodeForLoadIC(LanguageMode language_mode); | 208 static Bytecode BytecodeForLoadIC(LanguageMode language_mode); |
208 static Bytecode BytecodeForKeyedLoadIC(LanguageMode language_mode); | 209 static Bytecode BytecodeForKeyedLoadIC(LanguageMode language_mode); |
209 static Bytecode BytecodeForStoreIC(LanguageMode language_mode); | 210 static Bytecode BytecodeForStoreIC(LanguageMode language_mode); |
210 static Bytecode BytecodeForKeyedStoreIC(LanguageMode language_mode); | 211 static Bytecode BytecodeForKeyedStoreIC(LanguageMode language_mode); |
211 static Bytecode BytecodeForLoadGlobal(LanguageMode language_mode); | 212 static Bytecode BytecodeForLoadGlobal(LanguageMode language_mode, |
| 213 TypeofMode typeof_mode); |
212 static Bytecode BytecodeForStoreGlobal(LanguageMode language_mode); | 214 static Bytecode BytecodeForStoreGlobal(LanguageMode language_mode); |
213 static Bytecode BytecodeForCreateArguments(CreateArgumentsType type); | 215 static Bytecode BytecodeForCreateArguments(CreateArgumentsType type); |
214 static Bytecode BytecodeForDelete(LanguageMode language_mode); | 216 static Bytecode BytecodeForDelete(LanguageMode language_mode); |
215 | 217 |
216 static bool FitsInIdx8Operand(int value); | 218 static bool FitsInIdx8Operand(int value); |
217 static bool FitsInIdx8Operand(size_t value); | 219 static bool FitsInIdx8Operand(size_t value); |
218 static bool FitsInImm8Operand(int value); | 220 static bool FitsInImm8Operand(int value); |
219 static bool FitsInIdx16Operand(int value); | 221 static bool FitsInIdx16Operand(int value); |
220 static bool FitsInIdx16Operand(size_t value); | 222 static bool FitsInIdx16Operand(size_t value); |
221 | 223 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 | 344 |
343 DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterScope); | 345 DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterScope); |
344 }; | 346 }; |
345 | 347 |
346 | 348 |
347 } // namespace interpreter | 349 } // namespace interpreter |
348 } // namespace internal | 350 } // namespace internal |
349 } // namespace v8 | 351 } // namespace v8 |
350 | 352 |
351 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ | 353 #endif // V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_ |
OLD | NEW |