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

Side by Side Diff: src/interpreter/interpreter.cc

Issue 1546683002: [Interpreter] Add support for jumps using constants with wide operands. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Incorporate comments on patchset 13. Created 4 years, 11 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
« no previous file with comments | « src/interpreter/constant-array-builder.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "src/interpreter/interpreter.h" 5 #include "src/interpreter/interpreter.h"
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/compiler.h" 8 #include "src/compiler.h"
9 #include "src/compiler/interpreter-assembler.h" 9 #include "src/compiler/interpreter-assembler.h"
10 #include "src/factory.h" 10 #include "src/factory.h"
(...skipping 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1211 1211
1212 // Jump <imm8> 1212 // Jump <imm8>
1213 // 1213 //
1214 // Jump by number of bytes represented by the immediate operand |imm8|. 1214 // Jump by number of bytes represented by the immediate operand |imm8|.
1215 void Interpreter::DoJump(compiler::InterpreterAssembler* assembler) { 1215 void Interpreter::DoJump(compiler::InterpreterAssembler* assembler) {
1216 Node* relative_jump = __ BytecodeOperandImm(0); 1216 Node* relative_jump = __ BytecodeOperandImm(0);
1217 __ Jump(relative_jump); 1217 __ Jump(relative_jump);
1218 } 1218 }
1219 1219
1220 1220
1221 // JumpConstant <idx> 1221 // JumpConstant <idx8>
1222 // 1222 //
1223 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool. 1223 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool.
1224 void Interpreter::DoJumpConstant(compiler::InterpreterAssembler* assembler) { 1224 void Interpreter::DoJumpConstant(compiler::InterpreterAssembler* assembler) {
1225 Node* index = __ BytecodeOperandIdx(0); 1225 Node* index = __ BytecodeOperandIdx(0);
1226 Node* constant = __ LoadConstantPoolEntry(index); 1226 Node* constant = __ LoadConstantPoolEntry(index);
1227 Node* relative_jump = __ SmiUntag(constant); 1227 Node* relative_jump = __ SmiUntag(constant);
1228 __ Jump(relative_jump); 1228 __ Jump(relative_jump);
1229 } 1229 }
1230 1230
1231 1231
1232 // JumpConstantWide <idx16>
1233 //
1234 // Jump by number of bytes in the Smi in the |idx16| entry in the
1235 // constant pool.
1236 void Interpreter::DoJumpConstantWide(
1237 compiler::InterpreterAssembler* assembler) {
1238 DoJumpConstant(assembler);
1239 }
1240
1241
1232 // JumpIfTrue <imm8> 1242 // JumpIfTrue <imm8>
1233 // 1243 //
1234 // Jump by number of bytes represented by an immediate operand if the 1244 // Jump by number of bytes represented by an immediate operand if the
1235 // accumulator contains true. 1245 // accumulator contains true.
1236 void Interpreter::DoJumpIfTrue(compiler::InterpreterAssembler* assembler) { 1246 void Interpreter::DoJumpIfTrue(compiler::InterpreterAssembler* assembler) {
1237 Node* accumulator = __ GetAccumulator(); 1247 Node* accumulator = __ GetAccumulator();
1238 Node* relative_jump = __ BytecodeOperandImm(0); 1248 Node* relative_jump = __ BytecodeOperandImm(0);
1239 Node* true_value = __ BooleanConstant(true); 1249 Node* true_value = __ BooleanConstant(true);
1240 __ JumpIfWordEqual(accumulator, true_value, relative_jump); 1250 __ JumpIfWordEqual(accumulator, true_value, relative_jump);
1241 } 1251 }
1242 1252
1243 1253
1244 // JumpIfTrueConstant <idx> 1254 // JumpIfTrueConstant <idx8>
1245 // 1255 //
1246 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1256 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1247 // if the accumulator contains true. 1257 // if the accumulator contains true.
1248 void Interpreter::DoJumpIfTrueConstant( 1258 void Interpreter::DoJumpIfTrueConstant(
1249 compiler::InterpreterAssembler* assembler) { 1259 compiler::InterpreterAssembler* assembler) {
1250 Node* accumulator = __ GetAccumulator(); 1260 Node* accumulator = __ GetAccumulator();
1251 Node* index = __ BytecodeOperandIdx(0); 1261 Node* index = __ BytecodeOperandIdx(0);
1252 Node* constant = __ LoadConstantPoolEntry(index); 1262 Node* constant = __ LoadConstantPoolEntry(index);
1253 Node* relative_jump = __ SmiUntag(constant); 1263 Node* relative_jump = __ SmiUntag(constant);
1254 Node* true_value = __ BooleanConstant(true); 1264 Node* true_value = __ BooleanConstant(true);
1255 __ JumpIfWordEqual(accumulator, true_value, relative_jump); 1265 __ JumpIfWordEqual(accumulator, true_value, relative_jump);
1256 } 1266 }
1257 1267
1258 1268
1269 // JumpIfTrueConstantWide <idx16>
1270 //
1271 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1272 // if the accumulator contains true.
1273 void Interpreter::DoJumpIfTrueConstantWide(
1274 compiler::InterpreterAssembler* assembler) {
1275 DoJumpIfTrueConstant(assembler);
1276 }
1277
1278
1259 // JumpIfFalse <imm8> 1279 // JumpIfFalse <imm8>
1260 // 1280 //
1261 // Jump by number of bytes represented by an immediate operand if the 1281 // Jump by number of bytes represented by an immediate operand if the
1262 // accumulator contains false. 1282 // accumulator contains false.
1263 void Interpreter::DoJumpIfFalse(compiler::InterpreterAssembler* assembler) { 1283 void Interpreter::DoJumpIfFalse(compiler::InterpreterAssembler* assembler) {
1264 Node* accumulator = __ GetAccumulator(); 1284 Node* accumulator = __ GetAccumulator();
1265 Node* relative_jump = __ BytecodeOperandImm(0); 1285 Node* relative_jump = __ BytecodeOperandImm(0);
1266 Node* false_value = __ BooleanConstant(false); 1286 Node* false_value = __ BooleanConstant(false);
1267 __ JumpIfWordEqual(accumulator, false_value, relative_jump); 1287 __ JumpIfWordEqual(accumulator, false_value, relative_jump);
1268 } 1288 }
1269 1289
1270 1290
1271 // JumpIfFalseConstant <idx> 1291 // JumpIfFalseConstant <idx8>
1272 // 1292 //
1273 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1293 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1274 // if the accumulator contains false. 1294 // if the accumulator contains false.
1275 void Interpreter::DoJumpIfFalseConstant( 1295 void Interpreter::DoJumpIfFalseConstant(
1276 compiler::InterpreterAssembler* assembler) { 1296 compiler::InterpreterAssembler* assembler) {
1277 Node* accumulator = __ GetAccumulator(); 1297 Node* accumulator = __ GetAccumulator();
1278 Node* index = __ BytecodeOperandIdx(0); 1298 Node* index = __ BytecodeOperandIdx(0);
1279 Node* constant = __ LoadConstantPoolEntry(index); 1299 Node* constant = __ LoadConstantPoolEntry(index);
1280 Node* relative_jump = __ SmiUntag(constant); 1300 Node* relative_jump = __ SmiUntag(constant);
1281 Node* false_value = __ BooleanConstant(false); 1301 Node* false_value = __ BooleanConstant(false);
1282 __ JumpIfWordEqual(accumulator, false_value, relative_jump); 1302 __ JumpIfWordEqual(accumulator, false_value, relative_jump);
1283 } 1303 }
1284 1304
1285 1305
1306 // JumpIfFalseConstant <idx16>
1307 //
1308 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1309 // if the accumulator contains false.
1310 void Interpreter::DoJumpIfFalseConstantWide(
1311 compiler::InterpreterAssembler* assembler) {
1312 DoJumpIfFalseConstant(assembler);
1313 }
1314
1315
1286 // JumpIfToBooleanTrue <imm8> 1316 // JumpIfToBooleanTrue <imm8>
1287 // 1317 //
1288 // Jump by number of bytes represented by an immediate operand if the object 1318 // Jump by number of bytes represented by an immediate operand if the object
1289 // referenced by the accumulator is true when the object is cast to boolean. 1319 // referenced by the accumulator is true when the object is cast to boolean.
1290 void Interpreter::DoJumpIfToBooleanTrue( 1320 void Interpreter::DoJumpIfToBooleanTrue(
1291 compiler::InterpreterAssembler* assembler) { 1321 compiler::InterpreterAssembler* assembler) {
1292 Node* accumulator = __ GetAccumulator(); 1322 Node* accumulator = __ GetAccumulator();
1293 Node* to_boolean_value = 1323 Node* to_boolean_value =
1294 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator); 1324 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator);
1295 Node* relative_jump = __ BytecodeOperandImm(0); 1325 Node* relative_jump = __ BytecodeOperandImm(0);
1296 Node* true_value = __ BooleanConstant(true); 1326 Node* true_value = __ BooleanConstant(true);
1297 __ JumpIfWordEqual(to_boolean_value, true_value, relative_jump); 1327 __ JumpIfWordEqual(to_boolean_value, true_value, relative_jump);
1298 } 1328 }
1299 1329
1300 1330
1301 // JumpIfToBooleanTrueConstant <idx> 1331 // JumpIfToBooleanTrueConstant <idx8>
1302 // 1332 //
1303 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1333 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1304 // if the object referenced by the accumulator is true when the object is cast 1334 // if the object referenced by the accumulator is true when the object is cast
1305 // to boolean. 1335 // to boolean.
1306 void Interpreter::DoJumpIfToBooleanTrueConstant( 1336 void Interpreter::DoJumpIfToBooleanTrueConstant(
1307 compiler::InterpreterAssembler* assembler) { 1337 compiler::InterpreterAssembler* assembler) {
1308 Node* accumulator = __ GetAccumulator(); 1338 Node* accumulator = __ GetAccumulator();
1309 Node* to_boolean_value = 1339 Node* to_boolean_value =
1310 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator); 1340 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator);
1311 Node* index = __ BytecodeOperandIdx(0); 1341 Node* index = __ BytecodeOperandIdx(0);
1312 Node* constant = __ LoadConstantPoolEntry(index); 1342 Node* constant = __ LoadConstantPoolEntry(index);
1313 Node* relative_jump = __ SmiUntag(constant); 1343 Node* relative_jump = __ SmiUntag(constant);
1314 Node* true_value = __ BooleanConstant(true); 1344 Node* true_value = __ BooleanConstant(true);
1315 __ JumpIfWordEqual(to_boolean_value, true_value, relative_jump); 1345 __ JumpIfWordEqual(to_boolean_value, true_value, relative_jump);
1316 } 1346 }
1317 1347
1318 1348
1349 // JumpIfToBooleanTrueConstantWide <idx16>
1350 //
1351 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1352 // if the object referenced by the accumulator is true when the object is cast
1353 // to boolean.
1354 void Interpreter::DoJumpIfToBooleanTrueConstantWide(
1355 compiler::InterpreterAssembler* assembler) {
1356 DoJumpIfToBooleanTrueConstant(assembler);
1357 }
1358
1359
1319 // JumpIfToBooleanFalse <imm8> 1360 // JumpIfToBooleanFalse <imm8>
1320 // 1361 //
1321 // Jump by number of bytes represented by an immediate operand if the object 1362 // Jump by number of bytes represented by an immediate operand if the object
1322 // referenced by the accumulator is false when the object is cast to boolean. 1363 // referenced by the accumulator is false when the object is cast to boolean.
1323 void Interpreter::DoJumpIfToBooleanFalse( 1364 void Interpreter::DoJumpIfToBooleanFalse(
1324 compiler::InterpreterAssembler* assembler) { 1365 compiler::InterpreterAssembler* assembler) {
1325 Node* accumulator = __ GetAccumulator(); 1366 Node* accumulator = __ GetAccumulator();
1326 Node* to_boolean_value = 1367 Node* to_boolean_value =
1327 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator); 1368 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator);
1328 Node* relative_jump = __ BytecodeOperandImm(0); 1369 Node* relative_jump = __ BytecodeOperandImm(0);
1329 Node* false_value = __ BooleanConstant(false); 1370 Node* false_value = __ BooleanConstant(false);
1330 __ JumpIfWordEqual(to_boolean_value, false_value, relative_jump); 1371 __ JumpIfWordEqual(to_boolean_value, false_value, relative_jump);
1331 } 1372 }
1332 1373
1333 1374
1334 // JumpIfToBooleanFalseConstant <idx> 1375 // JumpIfToBooleanFalseConstant <idx8>
1335 // 1376 //
1336 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1377 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1337 // if the object referenced by the accumulator is false when the object is cast 1378 // if the object referenced by the accumulator is false when the object is cast
1338 // to boolean. 1379 // to boolean.
1339 void Interpreter::DoJumpIfToBooleanFalseConstant( 1380 void Interpreter::DoJumpIfToBooleanFalseConstant(
1340 compiler::InterpreterAssembler* assembler) { 1381 compiler::InterpreterAssembler* assembler) {
1341 Node* accumulator = __ GetAccumulator(); 1382 Node* accumulator = __ GetAccumulator();
1342 Node* to_boolean_value = 1383 Node* to_boolean_value =
1343 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator); 1384 __ CallRuntime(Runtime::kInterpreterToBoolean, accumulator);
1344 Node* index = __ BytecodeOperandIdx(0); 1385 Node* index = __ BytecodeOperandIdx(0);
1345 Node* constant = __ LoadConstantPoolEntry(index); 1386 Node* constant = __ LoadConstantPoolEntry(index);
1346 Node* relative_jump = __ SmiUntag(constant); 1387 Node* relative_jump = __ SmiUntag(constant);
1347 Node* false_value = __ BooleanConstant(false); 1388 Node* false_value = __ BooleanConstant(false);
1348 __ JumpIfWordEqual(to_boolean_value, false_value, relative_jump); 1389 __ JumpIfWordEqual(to_boolean_value, false_value, relative_jump);
1349 } 1390 }
1350 1391
1351 1392
1393 // JumpIfToBooleanFalseConstantWide <idx16>
1394 //
1395 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1396 // if the object referenced by the accumulator is false when the object is cast
1397 // to boolean.
1398 void Interpreter::DoJumpIfToBooleanFalseConstantWide(
1399 compiler::InterpreterAssembler* assembler) {
1400 DoJumpIfToBooleanFalseConstant(assembler);
1401 }
1402
1403
1352 // JumpIfNull <imm8> 1404 // JumpIfNull <imm8>
1353 // 1405 //
1354 // Jump by number of bytes represented by an immediate operand if the object 1406 // Jump by number of bytes represented by an immediate operand if the object
1355 // referenced by the accumulator is the null constant. 1407 // referenced by the accumulator is the null constant.
1356 void Interpreter::DoJumpIfNull(compiler::InterpreterAssembler* assembler) { 1408 void Interpreter::DoJumpIfNull(compiler::InterpreterAssembler* assembler) {
1357 Node* accumulator = __ GetAccumulator(); 1409 Node* accumulator = __ GetAccumulator();
1358 Node* null_value = __ HeapConstant(isolate_->factory()->null_value()); 1410 Node* null_value = __ HeapConstant(isolate_->factory()->null_value());
1359 Node* relative_jump = __ BytecodeOperandImm(0); 1411 Node* relative_jump = __ BytecodeOperandImm(0);
1360 __ JumpIfWordEqual(accumulator, null_value, relative_jump); 1412 __ JumpIfWordEqual(accumulator, null_value, relative_jump);
1361 } 1413 }
1362 1414
1363 1415
1364 // JumpIfNullConstant <idx> 1416 // JumpIfNullConstant <idx8>
1365 // 1417 //
1366 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1418 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1367 // if the object referenced by the accumulator is the null constant. 1419 // if the object referenced by the accumulator is the null constant.
1368 void Interpreter::DoJumpIfNullConstant( 1420 void Interpreter::DoJumpIfNullConstant(
1369 compiler::InterpreterAssembler* assembler) { 1421 compiler::InterpreterAssembler* assembler) {
1370 Node* accumulator = __ GetAccumulator(); 1422 Node* accumulator = __ GetAccumulator();
1371 Node* null_value = __ HeapConstant(isolate_->factory()->null_value()); 1423 Node* null_value = __ HeapConstant(isolate_->factory()->null_value());
1372 Node* index = __ BytecodeOperandIdx(0); 1424 Node* index = __ BytecodeOperandIdx(0);
1373 Node* constant = __ LoadConstantPoolEntry(index); 1425 Node* constant = __ LoadConstantPoolEntry(index);
1374 Node* relative_jump = __ SmiUntag(constant); 1426 Node* relative_jump = __ SmiUntag(constant);
1375 __ JumpIfWordEqual(accumulator, null_value, relative_jump); 1427 __ JumpIfWordEqual(accumulator, null_value, relative_jump);
1376 } 1428 }
1377 1429
1378 1430
1379 // JumpIfUndefined <imm8> 1431 // JumpIfNullConstantWide <idx16>
1432 //
1433 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1434 // if the object referenced by the accumulator is the null constant.
1435 void Interpreter::DoJumpIfNullConstantWide(
1436 compiler::InterpreterAssembler* assembler) {
1437 DoJumpIfNullConstant(assembler);
1438 }
1439
1440
1441 // jumpifundefined <imm8>
1380 // 1442 //
1381 // Jump by number of bytes represented by an immediate operand if the object 1443 // Jump by number of bytes represented by an immediate operand if the object
1382 // referenced by the accumulator is the undefined constant. 1444 // referenced by the accumulator is the undefined constant.
1383 void Interpreter::DoJumpIfUndefined(compiler::InterpreterAssembler* assembler) { 1445 void Interpreter::DoJumpIfUndefined(compiler::InterpreterAssembler* assembler) {
1384 Node* accumulator = __ GetAccumulator(); 1446 Node* accumulator = __ GetAccumulator();
1385 Node* undefined_value = 1447 Node* undefined_value =
1386 __ HeapConstant(isolate_->factory()->undefined_value()); 1448 __ HeapConstant(isolate_->factory()->undefined_value());
1387 Node* relative_jump = __ BytecodeOperandImm(0); 1449 Node* relative_jump = __ BytecodeOperandImm(0);
1388 __ JumpIfWordEqual(accumulator, undefined_value, relative_jump); 1450 __ JumpIfWordEqual(accumulator, undefined_value, relative_jump);
1389 } 1451 }
1390 1452
1391 1453
1392 // JumpIfUndefinedConstant <idx> 1454 // JumpIfUndefinedConstant <idx8>
1393 // 1455 //
1394 // Jump by number of bytes in the Smi in the |idx| entry in the constant pool 1456 // Jump by number of bytes in the Smi in the |idx8| entry in the constant pool
1395 // if the object referenced by the accumulator is the undefined constant. 1457 // if the object referenced by the accumulator is the undefined constant.
1396 void Interpreter::DoJumpIfUndefinedConstant( 1458 void Interpreter::DoJumpIfUndefinedConstant(
1397 compiler::InterpreterAssembler* assembler) { 1459 compiler::InterpreterAssembler* assembler) {
1398 Node* accumulator = __ GetAccumulator(); 1460 Node* accumulator = __ GetAccumulator();
1399 Node* undefined_value = 1461 Node* undefined_value =
1400 __ HeapConstant(isolate_->factory()->undefined_value()); 1462 __ HeapConstant(isolate_->factory()->undefined_value());
1401 Node* index = __ BytecodeOperandIdx(0); 1463 Node* index = __ BytecodeOperandIdx(0);
1402 Node* constant = __ LoadConstantPoolEntry(index); 1464 Node* constant = __ LoadConstantPoolEntry(index);
1403 Node* relative_jump = __ SmiUntag(constant); 1465 Node* relative_jump = __ SmiUntag(constant);
1404 __ JumpIfWordEqual(accumulator, undefined_value, relative_jump); 1466 __ JumpIfWordEqual(accumulator, undefined_value, relative_jump);
1405 } 1467 }
1406 1468
1407 1469
1470 // JumpIfUndefinedConstantWide <idx16>
1471 //
1472 // Jump by number of bytes in the Smi in the |idx16| entry in the constant pool
1473 // if the object referenced by the accumulator is the undefined constant.
1474 void Interpreter::DoJumpIfUndefinedConstantWide(
1475 compiler::InterpreterAssembler* assembler) {
1476 DoJumpIfUndefinedConstant(assembler);
1477 }
1478
1479
1408 void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id, 1480 void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id,
1409 compiler::InterpreterAssembler* assembler) { 1481 compiler::InterpreterAssembler* assembler) {
1410 Node* index = __ BytecodeOperandIdx(0); 1482 Node* index = __ BytecodeOperandIdx(0);
1411 Node* constant_elements = __ LoadConstantPoolEntry(index); 1483 Node* constant_elements = __ LoadConstantPoolEntry(index);
1412 Node* literal_index_raw = __ BytecodeOperandIdx(1); 1484 Node* literal_index_raw = __ BytecodeOperandIdx(1);
1413 Node* literal_index = __ SmiTag(literal_index_raw); 1485 Node* literal_index = __ SmiTag(literal_index_raw);
1414 Node* flags_raw = __ BytecodeOperandImm(2); 1486 Node* flags_raw = __ BytecodeOperandImm(2);
1415 Node* flags = __ SmiTag(flags_raw); 1487 Node* flags = __ SmiTag(flags_raw);
1416 Node* closure = __ LoadRegister(Register::function_closure()); 1488 Node* closure = __ LoadRegister(Register::function_closure());
1417 Node* result = __ CallRuntime(function_id, closure, literal_index, 1489 Node* result = __ CallRuntime(function_id, closure, literal_index,
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1614 Node* index_reg = __ BytecodeOperandReg(0); 1686 Node* index_reg = __ BytecodeOperandReg(0);
1615 Node* index = __ LoadRegister(index_reg); 1687 Node* index = __ LoadRegister(index_reg);
1616 Node* result = __ CallRuntime(Runtime::kForInStep, index); 1688 Node* result = __ CallRuntime(Runtime::kForInStep, index);
1617 __ SetAccumulator(result); 1689 __ SetAccumulator(result);
1618 __ Dispatch(); 1690 __ Dispatch();
1619 } 1691 }
1620 1692
1621 } // namespace interpreter 1693 } // namespace interpreter
1622 } // namespace internal 1694 } // namespace internal
1623 } // namespace v8 1695 } // namespace v8
OLDNEW
« no previous file with comments | « src/interpreter/constant-array-builder.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698