Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: test/unittests/interpreter/bytecode-array-builder-unittest.cc

Issue 2216023003: [interpreter] Add register output to ObjectLiteral (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/interpreter/bytecode-array-builder.h" 7 #include "src/interpreter/bytecode-array-builder.h"
8 #include "src/interpreter/bytecode-array-iterator.h" 8 #include "src/interpreter/bytecode-array-iterator.h"
9 #include "src/interpreter/bytecode-label.h" 9 #include "src/interpreter/bytecode-label.h"
10 #include "src/interpreter/bytecode-register-allocator.h" 10 #include "src/interpreter/bytecode-register-allocator.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 101
102 // Emit closure operations. 102 // Emit closure operations.
103 builder.CreateClosure(0, NOT_TENURED); 103 builder.CreateClosure(0, NOT_TENURED);
104 104
105 // Emit create context operation. 105 // Emit create context operation.
106 builder.CreateFunctionContext(1); 106 builder.CreateFunctionContext(1);
107 107
108 // Emit literal creation operations. 108 // Emit literal creation operations.
109 builder.CreateRegExpLiteral(factory->NewStringFromStaticChars("a"), 0, 0) 109 builder.CreateRegExpLiteral(factory->NewStringFromStaticChars("a"), 0, 0)
110 .CreateArrayLiteral(factory->NewFixedArray(1), 0, 0) 110 .CreateArrayLiteral(factory->NewFixedArray(1), 0, 0)
111 .CreateObjectLiteral(factory->NewFixedArray(1), 0, 0); 111 .CreateObjectLiteral(factory->NewFixedArray(1), 0, 0, reg);
112 112
113 // Call operations. 113 // Call operations.
114 builder.Call(reg, other, 0, 1) 114 builder.Call(reg, other, 0, 1)
115 .Call(reg, wide, 0, 1) 115 .Call(reg, wide, 0, 1)
116 .TailCall(reg, other, 0, 1) 116 .TailCall(reg, other, 0, 1)
117 .TailCall(reg, wide, 0, 1) 117 .TailCall(reg, wide, 0, 1)
118 .CallRuntime(Runtime::kIsArray, reg, 1) 118 .CallRuntime(Runtime::kIsArray, reg, 1)
119 .CallRuntime(Runtime::kIsArray, wide, 1) 119 .CallRuntime(Runtime::kIsArray, wide, 1)
120 .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, reg, 1, other) 120 .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, reg, 1, other)
121 .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, wide, 1, other) 121 .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, wide, 1, other)
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 .LoadUndefined() 325 .LoadUndefined()
326 .StoreAccumulatorInRegister(reg); 326 .StoreAccumulatorInRegister(reg);
327 327
328 // CreateClosureWide 328 // CreateClosureWide
329 builder.CreateClosure(1000, NOT_TENURED); 329 builder.CreateClosure(1000, NOT_TENURED);
330 330
331 // Emit wide variant of literal creation operations. 331 // Emit wide variant of literal creation operations.
332 builder.CreateRegExpLiteral(factory->NewStringFromStaticChars("wide_literal"), 332 builder.CreateRegExpLiteral(factory->NewStringFromStaticChars("wide_literal"),
333 0, 0) 333 0, 0)
334 .CreateArrayLiteral(factory->NewFixedArray(2), 0, 0) 334 .CreateArrayLiteral(factory->NewFixedArray(2), 0, 0)
335 .CreateObjectLiteral(factory->NewFixedArray(2), 0, 0); 335 .CreateObjectLiteral(factory->NewFixedArray(2), 0, 0, reg);
336 336
337 // Longer jumps requiring ConstantWide operand 337 // Longer jumps requiring ConstantWide operand
338 { 338 {
339 BytecodeLabel after_jump; 339 BytecodeLabel after_jump;
340 builder.Jump(&start) 340 builder.Jump(&start)
341 .Bind(&after_jump) 341 .Bind(&after_jump)
342 .JumpIfNull(&start) 342 .JumpIfNull(&start)
343 .JumpIfUndefined(&start) 343 .JumpIfUndefined(&start)
344 .JumpIfNotHole(&start); 344 .JumpIfNotHole(&start);
345 } 345 }
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 iterator.Advance(); 849 iterator.Advance();
850 } 850 }
851 CHECK_EQ(iterator.current_bytecode(), Bytecode::kReturn); 851 CHECK_EQ(iterator.current_bytecode(), Bytecode::kReturn);
852 iterator.Advance(); 852 iterator.Advance();
853 CHECK(iterator.done()); 853 CHECK(iterator.done());
854 } 854 }
855 855
856 } // namespace interpreter 856 } // namespace interpreter
857 } // namespace internal 857 } // namespace internal
858 } // namespace v8 858 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698