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

Side by Side Diff: src/code-stubs.cc

Issue 2543873003: [stubs] Use CSA::IsHeapNumberMap() instead of manual map comparing. (Closed)
Patch Set: Created 4 years 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/code-stubs.h" 5 #include "src/code-stubs.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/ast/ast.h" 9 #include "src/ast/ast.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 // Shared entry point for floating point multiplication. 1040 // Shared entry point for floating point multiplication.
1041 Label do_fmul(assembler), if_lhsisnotnumber(assembler, Label::kDeferred), 1041 Label do_fmul(assembler), if_lhsisnotnumber(assembler, Label::kDeferred),
1042 check_rhsisoddball(assembler, Label::kDeferred), 1042 check_rhsisoddball(assembler, Label::kDeferred),
1043 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler), 1043 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler),
1044 call_multiply_stub(assembler), end(assembler); 1044 call_multiply_stub(assembler), end(assembler);
1045 Variable var_lhs_float64(assembler, MachineRepresentation::kFloat64), 1045 Variable var_lhs_float64(assembler, MachineRepresentation::kFloat64),
1046 var_rhs_float64(assembler, MachineRepresentation::kFloat64), 1046 var_rhs_float64(assembler, MachineRepresentation::kFloat64),
1047 var_result(assembler, MachineRepresentation::kTagged), 1047 var_result(assembler, MachineRepresentation::kTagged),
1048 var_type_feedback(assembler, MachineRepresentation::kWord32); 1048 var_type_feedback(assembler, MachineRepresentation::kWord32);
1049 1049
1050 Node* number_map = assembler->HeapNumberMapConstant();
1051
1052 Label lhs_is_smi(assembler), lhs_is_not_smi(assembler); 1050 Label lhs_is_smi(assembler), lhs_is_not_smi(assembler);
1053 assembler->Branch(assembler->TaggedIsSmi(lhs), &lhs_is_smi, &lhs_is_not_smi); 1051 assembler->Branch(assembler->TaggedIsSmi(lhs), &lhs_is_smi, &lhs_is_not_smi);
1054 1052
1055 assembler->Bind(&lhs_is_smi); 1053 assembler->Bind(&lhs_is_smi);
1056 { 1054 {
1057 Label rhs_is_smi(assembler), rhs_is_not_smi(assembler); 1055 Label rhs_is_smi(assembler), rhs_is_not_smi(assembler);
1058 assembler->Branch(assembler->TaggedIsSmi(rhs), &rhs_is_smi, 1056 assembler->Branch(assembler->TaggedIsSmi(rhs), &rhs_is_smi,
1059 &rhs_is_not_smi); 1057 &rhs_is_not_smi);
1060 1058
1061 assembler->Bind(&rhs_is_smi); 1059 assembler->Bind(&rhs_is_smi);
1062 { 1060 {
1063 // Both {lhs} and {rhs} are Smis. The result is not necessarily a smi, 1061 // Both {lhs} and {rhs} are Smis. The result is not necessarily a smi,
1064 // in case of overflow. 1062 // in case of overflow.
1065 var_result.Bind(assembler->SmiMul(lhs, rhs)); 1063 var_result.Bind(assembler->SmiMul(lhs, rhs));
1066 var_type_feedback.Bind(assembler->Select( 1064 var_type_feedback.Bind(assembler->Select(
1067 assembler->TaggedIsSmi(var_result.value()), 1065 assembler->TaggedIsSmi(var_result.value()),
1068 assembler->Int32Constant(BinaryOperationFeedback::kSignedSmall), 1066 assembler->Int32Constant(BinaryOperationFeedback::kSignedSmall),
1069 assembler->Int32Constant(BinaryOperationFeedback::kNumber), 1067 assembler->Int32Constant(BinaryOperationFeedback::kNumber),
1070 MachineRepresentation::kWord32)); 1068 MachineRepresentation::kWord32));
1071 assembler->Goto(&end); 1069 assembler->Goto(&end);
1072 } 1070 }
1073 1071
1074 assembler->Bind(&rhs_is_not_smi); 1072 assembler->Bind(&rhs_is_not_smi);
1075 { 1073 {
1076 Node* rhs_map = assembler->LoadMap(rhs); 1074 Node* rhs_map = assembler->LoadMap(rhs);
1077 1075
1078 // Check if {rhs} is a HeapNumber. 1076 // Check if {rhs} is a HeapNumber.
1079 assembler->GotoUnless(assembler->WordEqual(rhs_map, number_map), 1077 assembler->GotoUnless(assembler->IsHeapNumberMap(rhs_map),
1080 &check_rhsisoddball); 1078 &check_rhsisoddball);
1081 1079
1082 // Convert {lhs} to a double and multiply it with the value of {rhs}. 1080 // Convert {lhs} to a double and multiply it with the value of {rhs}.
1083 var_lhs_float64.Bind(assembler->SmiToFloat64(lhs)); 1081 var_lhs_float64.Bind(assembler->SmiToFloat64(lhs));
1084 var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs)); 1082 var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs));
1085 assembler->Goto(&do_fmul); 1083 assembler->Goto(&do_fmul);
1086 } 1084 }
1087 } 1085 }
1088 1086
1089 assembler->Bind(&lhs_is_not_smi); 1087 assembler->Bind(&lhs_is_not_smi);
1090 { 1088 {
1091 Node* lhs_map = assembler->LoadMap(lhs); 1089 Node* lhs_map = assembler->LoadMap(lhs);
1092 1090
1093 // Check if {lhs} is a HeapNumber. 1091 // Check if {lhs} is a HeapNumber.
1094 assembler->GotoUnless(assembler->WordEqual(lhs_map, number_map), 1092 assembler->GotoUnless(assembler->IsHeapNumberMap(lhs_map),
1095 &if_lhsisnotnumber); 1093 &if_lhsisnotnumber);
1096 1094
1097 // Check if {rhs} is a Smi. 1095 // Check if {rhs} is a Smi.
1098 Label rhs_is_smi(assembler), rhs_is_not_smi(assembler); 1096 Label rhs_is_smi(assembler), rhs_is_not_smi(assembler);
1099 assembler->Branch(assembler->TaggedIsSmi(rhs), &rhs_is_smi, 1097 assembler->Branch(assembler->TaggedIsSmi(rhs), &rhs_is_smi,
1100 &rhs_is_not_smi); 1098 &rhs_is_not_smi);
1101 1099
1102 assembler->Bind(&rhs_is_smi); 1100 assembler->Bind(&rhs_is_smi);
1103 { 1101 {
1104 // Convert {rhs} to a double and multiply it with the value of {lhs}. 1102 // Convert {rhs} to a double and multiply it with the value of {lhs}.
1105 var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs)); 1103 var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs));
1106 var_rhs_float64.Bind(assembler->SmiToFloat64(rhs)); 1104 var_rhs_float64.Bind(assembler->SmiToFloat64(rhs));
1107 assembler->Goto(&do_fmul); 1105 assembler->Goto(&do_fmul);
1108 } 1106 }
1109 1107
1110 assembler->Bind(&rhs_is_not_smi); 1108 assembler->Bind(&rhs_is_not_smi);
1111 { 1109 {
1112 Node* rhs_map = assembler->LoadMap(rhs); 1110 Node* rhs_map = assembler->LoadMap(rhs);
1113 1111
1114 // Check if {rhs} is a HeapNumber. 1112 // Check if {rhs} is a HeapNumber.
1115 assembler->GotoUnless(assembler->WordEqual(rhs_map, number_map), 1113 assembler->GotoUnless(assembler->IsHeapNumberMap(rhs_map),
1116 &check_rhsisoddball); 1114 &check_rhsisoddball);
1117 1115
1118 // Both {lhs} and {rhs} are HeapNumbers. Load their values and 1116 // Both {lhs} and {rhs} are HeapNumbers. Load their values and
1119 // multiply them. 1117 // multiply them.
1120 var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs)); 1118 var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs));
1121 var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs)); 1119 var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs));
1122 assembler->Goto(&do_fmul); 1120 assembler->Goto(&do_fmul);
1123 } 1121 }
1124 } 1122 }
1125 1123
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1204 // Shared entry point for floating point division. 1202 // Shared entry point for floating point division.
1205 Label do_fdiv(assembler), dividend_is_not_number(assembler, Label::kDeferred), 1203 Label do_fdiv(assembler), dividend_is_not_number(assembler, Label::kDeferred),
1206 check_divisor_for_oddball(assembler, Label::kDeferred), 1204 check_divisor_for_oddball(assembler, Label::kDeferred),
1207 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler), 1205 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler),
1208 call_divide_stub(assembler), end(assembler); 1206 call_divide_stub(assembler), end(assembler);
1209 Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64), 1207 Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64),
1210 var_divisor_float64(assembler, MachineRepresentation::kFloat64), 1208 var_divisor_float64(assembler, MachineRepresentation::kFloat64),
1211 var_result(assembler, MachineRepresentation::kTagged), 1209 var_result(assembler, MachineRepresentation::kTagged),
1212 var_type_feedback(assembler, MachineRepresentation::kWord32); 1210 var_type_feedback(assembler, MachineRepresentation::kWord32);
1213 1211
1214 Node* number_map = assembler->HeapNumberMapConstant();
1215
1216 Label dividend_is_smi(assembler), dividend_is_not_smi(assembler); 1212 Label dividend_is_smi(assembler), dividend_is_not_smi(assembler);
1217 assembler->Branch(assembler->TaggedIsSmi(dividend), &dividend_is_smi, 1213 assembler->Branch(assembler->TaggedIsSmi(dividend), &dividend_is_smi,
1218 &dividend_is_not_smi); 1214 &dividend_is_not_smi);
1219 1215
1220 assembler->Bind(&dividend_is_smi); 1216 assembler->Bind(&dividend_is_smi);
1221 { 1217 {
1222 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler); 1218 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
1223 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi, 1219 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi,
1224 &divisor_is_not_smi); 1220 &divisor_is_not_smi);
1225 1221
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor)); 1286 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
1291 assembler->Goto(&do_fdiv); 1287 assembler->Goto(&do_fdiv);
1292 } 1288 }
1293 } 1289 }
1294 1290
1295 assembler->Bind(&divisor_is_not_smi); 1291 assembler->Bind(&divisor_is_not_smi);
1296 { 1292 {
1297 Node* divisor_map = assembler->LoadMap(divisor); 1293 Node* divisor_map = assembler->LoadMap(divisor);
1298 1294
1299 // Check if {divisor} is a HeapNumber. 1295 // Check if {divisor} is a HeapNumber.
1300 assembler->GotoUnless(assembler->WordEqual(divisor_map, number_map), 1296 assembler->GotoUnless(assembler->IsHeapNumberMap(divisor_map),
1301 &check_divisor_for_oddball); 1297 &check_divisor_for_oddball);
1302 1298
1303 // Convert {dividend} to a double and divide it with the value of 1299 // Convert {dividend} to a double and divide it with the value of
1304 // {divisor}. 1300 // {divisor}.
1305 var_dividend_float64.Bind(assembler->SmiToFloat64(dividend)); 1301 var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
1306 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor)); 1302 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
1307 assembler->Goto(&do_fdiv); 1303 assembler->Goto(&do_fdiv);
1308 } 1304 }
1309 1305
1310 assembler->Bind(&dividend_is_not_smi); 1306 assembler->Bind(&dividend_is_not_smi);
1311 { 1307 {
1312 Node* dividend_map = assembler->LoadMap(dividend); 1308 Node* dividend_map = assembler->LoadMap(dividend);
1313 1309
1314 // Check if {dividend} is a HeapNumber. 1310 // Check if {dividend} is a HeapNumber.
1315 assembler->GotoUnless(assembler->WordEqual(dividend_map, number_map), 1311 assembler->GotoUnless(assembler->IsHeapNumberMap(dividend_map),
1316 &dividend_is_not_number); 1312 &dividend_is_not_number);
1317 1313
1318 // Check if {divisor} is a Smi. 1314 // Check if {divisor} is a Smi.
1319 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler); 1315 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
1320 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi, 1316 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi,
1321 &divisor_is_not_smi); 1317 &divisor_is_not_smi);
1322 1318
1323 assembler->Bind(&divisor_is_smi); 1319 assembler->Bind(&divisor_is_smi);
1324 { 1320 {
1325 // Convert {divisor} to a double and use it for a floating point 1321 // Convert {divisor} to a double and use it for a floating point
1326 // division. 1322 // division.
1327 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend)); 1323 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
1328 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor)); 1324 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
1329 assembler->Goto(&do_fdiv); 1325 assembler->Goto(&do_fdiv);
1330 } 1326 }
1331 1327
1332 assembler->Bind(&divisor_is_not_smi); 1328 assembler->Bind(&divisor_is_not_smi);
1333 { 1329 {
1334 Node* divisor_map = assembler->LoadMap(divisor); 1330 Node* divisor_map = assembler->LoadMap(divisor);
1335 1331
1336 // Check if {divisor} is a HeapNumber. 1332 // Check if {divisor} is a HeapNumber.
1337 assembler->GotoUnless(assembler->WordEqual(divisor_map, number_map), 1333 assembler->GotoUnless(assembler->IsHeapNumberMap(divisor_map),
1338 &check_divisor_for_oddball); 1334 &check_divisor_for_oddball);
1339 1335
1340 // Both {dividend} and {divisor} are HeapNumbers. Load their values 1336 // Both {dividend} and {divisor} are HeapNumbers. Load their values
1341 // and divide them. 1337 // and divide them.
1342 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend)); 1338 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
1343 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor)); 1339 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
1344 assembler->Goto(&do_fdiv); 1340 assembler->Goto(&do_fdiv);
1345 } 1341 }
1346 } 1342 }
1347 } 1343 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1426 // Shared entry point for floating point division. 1422 // Shared entry point for floating point division.
1427 Label do_fmod(assembler), dividend_is_not_number(assembler, Label::kDeferred), 1423 Label do_fmod(assembler), dividend_is_not_number(assembler, Label::kDeferred),
1428 check_divisor_for_oddball(assembler, Label::kDeferred), 1424 check_divisor_for_oddball(assembler, Label::kDeferred),
1429 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler), 1425 call_with_oddball_feedback(assembler), call_with_any_feedback(assembler),
1430 call_modulus_stub(assembler), end(assembler); 1426 call_modulus_stub(assembler), end(assembler);
1431 Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64), 1427 Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64),
1432 var_divisor_float64(assembler, MachineRepresentation::kFloat64), 1428 var_divisor_float64(assembler, MachineRepresentation::kFloat64),
1433 var_result(assembler, MachineRepresentation::kTagged), 1429 var_result(assembler, MachineRepresentation::kTagged),
1434 var_type_feedback(assembler, MachineRepresentation::kWord32); 1430 var_type_feedback(assembler, MachineRepresentation::kWord32);
1435 1431
1436 Node* number_map = assembler->HeapNumberMapConstant();
1437
1438 Label dividend_is_smi(assembler), dividend_is_not_smi(assembler); 1432 Label dividend_is_smi(assembler), dividend_is_not_smi(assembler);
1439 assembler->Branch(assembler->TaggedIsSmi(dividend), &dividend_is_smi, 1433 assembler->Branch(assembler->TaggedIsSmi(dividend), &dividend_is_smi,
1440 &dividend_is_not_smi); 1434 &dividend_is_not_smi);
1441 1435
1442 assembler->Bind(&dividend_is_smi); 1436 assembler->Bind(&dividend_is_smi);
1443 { 1437 {
1444 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler); 1438 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
1445 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi, 1439 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi,
1446 &divisor_is_not_smi); 1440 &divisor_is_not_smi);
1447 1441
1448 assembler->Bind(&divisor_is_smi); 1442 assembler->Bind(&divisor_is_smi);
1449 { 1443 {
1450 var_result.Bind(assembler->SmiMod(dividend, divisor)); 1444 var_result.Bind(assembler->SmiMod(dividend, divisor));
1451 var_type_feedback.Bind(assembler->Select( 1445 var_type_feedback.Bind(assembler->Select(
1452 assembler->TaggedIsSmi(var_result.value()), 1446 assembler->TaggedIsSmi(var_result.value()),
1453 assembler->Int32Constant(BinaryOperationFeedback::kSignedSmall), 1447 assembler->Int32Constant(BinaryOperationFeedback::kSignedSmall),
1454 assembler->Int32Constant(BinaryOperationFeedback::kNumber))); 1448 assembler->Int32Constant(BinaryOperationFeedback::kNumber)));
1455 assembler->Goto(&end); 1449 assembler->Goto(&end);
1456 } 1450 }
1457 1451
1458 assembler->Bind(&divisor_is_not_smi); 1452 assembler->Bind(&divisor_is_not_smi);
1459 { 1453 {
1460 Node* divisor_map = assembler->LoadMap(divisor); 1454 Node* divisor_map = assembler->LoadMap(divisor);
1461 1455
1462 // Check if {divisor} is a HeapNumber. 1456 // Check if {divisor} is a HeapNumber.
1463 assembler->GotoUnless(assembler->WordEqual(divisor_map, number_map), 1457 assembler->GotoUnless(assembler->IsHeapNumberMap(divisor_map),
1464 &check_divisor_for_oddball); 1458 &check_divisor_for_oddball);
1465 1459
1466 // Convert {dividend} to a double and divide it with the value of 1460 // Convert {dividend} to a double and divide it with the value of
1467 // {divisor}. 1461 // {divisor}.
1468 var_dividend_float64.Bind(assembler->SmiToFloat64(dividend)); 1462 var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
1469 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor)); 1463 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
1470 assembler->Goto(&do_fmod); 1464 assembler->Goto(&do_fmod);
1471 } 1465 }
1472 } 1466 }
1473 1467
1474 assembler->Bind(&dividend_is_not_smi); 1468 assembler->Bind(&dividend_is_not_smi);
1475 { 1469 {
1476 Node* dividend_map = assembler->LoadMap(dividend); 1470 Node* dividend_map = assembler->LoadMap(dividend);
1477 1471
1478 // Check if {dividend} is a HeapNumber. 1472 // Check if {dividend} is a HeapNumber.
1479 assembler->GotoUnless(assembler->WordEqual(dividend_map, number_map), 1473 assembler->GotoUnless(assembler->IsHeapNumberMap(dividend_map),
1480 &dividend_is_not_number); 1474 &dividend_is_not_number);
1481 1475
1482 // Check if {divisor} is a Smi. 1476 // Check if {divisor} is a Smi.
1483 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler); 1477 Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
1484 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi, 1478 assembler->Branch(assembler->TaggedIsSmi(divisor), &divisor_is_smi,
1485 &divisor_is_not_smi); 1479 &divisor_is_not_smi);
1486 1480
1487 assembler->Bind(&divisor_is_smi); 1481 assembler->Bind(&divisor_is_smi);
1488 { 1482 {
1489 // Convert {divisor} to a double and use it for a floating point 1483 // Convert {divisor} to a double and use it for a floating point
1490 // division. 1484 // division.
1491 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend)); 1485 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
1492 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor)); 1486 var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
1493 assembler->Goto(&do_fmod); 1487 assembler->Goto(&do_fmod);
1494 } 1488 }
1495 1489
1496 assembler->Bind(&divisor_is_not_smi); 1490 assembler->Bind(&divisor_is_not_smi);
1497 { 1491 {
1498 Node* divisor_map = assembler->LoadMap(divisor); 1492 Node* divisor_map = assembler->LoadMap(divisor);
1499 1493
1500 // Check if {divisor} is a HeapNumber. 1494 // Check if {divisor} is a HeapNumber.
1501 assembler->GotoUnless(assembler->WordEqual(divisor_map, number_map), 1495 assembler->GotoUnless(assembler->IsHeapNumberMap(divisor_map),
1502 &check_divisor_for_oddball); 1496 &check_divisor_for_oddball);
1503 1497
1504 // Both {dividend} and {divisor} are HeapNumbers. Load their values 1498 // Both {dividend} and {divisor} are HeapNumbers. Load their values
1505 // and divide them. 1499 // and divide them.
1506 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend)); 1500 var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
1507 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor)); 1501 var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
1508 assembler->Goto(&do_fmod); 1502 assembler->Goto(&do_fmod);
1509 } 1503 }
1510 } 1504 }
1511 1505
(...skipping 1700 matching lines...) Expand 10 before | Expand all | Expand 10 after
3212 } 3206 }
3213 3207
3214 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate) 3208 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
3215 : PlatformCodeStub(isolate) {} 3209 : PlatformCodeStub(isolate) {}
3216 3210
3217 InternalArrayConstructorStub::InternalArrayConstructorStub(Isolate* isolate) 3211 InternalArrayConstructorStub::InternalArrayConstructorStub(Isolate* isolate)
3218 : PlatformCodeStub(isolate) {} 3212 : PlatformCodeStub(isolate) {}
3219 3213
3220 } // namespace internal 3214 } // namespace internal
3221 } // namespace v8 3215 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698