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

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

Issue 1655833002: Remove the template magic from types.(h|cc), remove types-inl.h. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Undo whitespace change Created 4 years, 10 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/code-stubs.cc ('k') | src/compiler/access-builder.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 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 "src/bailout-reason.h" 7 #include "src/bailout-reason.h"
8 #include "src/crankshaft/hydrogen.h" 8 #include "src/crankshaft/hydrogen.h"
9 #include "src/crankshaft/lithium.h" 9 #include "src/crankshaft/lithium.h"
10 #include "src/field-index.h" 10 #include "src/field-index.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 << timer.Elapsed().InMillisecondsF() << " ms]" << std::endl; 311 << timer.Elapsed().InMillisecondsF() << " ms]" << std::endl;
312 } 312 }
313 return code; 313 return code;
314 } 314 }
315 315
316 316
317 template <> 317 template <>
318 HValue* CodeStubGraphBuilder<NumberToStringStub>::BuildCodeStub() { 318 HValue* CodeStubGraphBuilder<NumberToStringStub>::BuildCodeStub() {
319 info()->MarkAsSavesCallerDoubles(); 319 info()->MarkAsSavesCallerDoubles();
320 HValue* number = GetParameter(NumberToStringStub::kNumber); 320 HValue* number = GetParameter(NumberToStringStub::kNumber);
321 return BuildNumberToString(number, Type::Number(zone())); 321 return BuildNumberToString(number, Type::Number());
322 } 322 }
323 323
324 324
325 Handle<Code> NumberToStringStub::GenerateCode() { 325 Handle<Code> NumberToStringStub::GenerateCode() {
326 return DoGenerateCode(this); 326 return DoGenerateCode(this);
327 } 327 }
328 328
329 329
330 // Returns the type string of a value; see ECMA-262, 11.4.3 (p 47). 330 // Returns the type string of a value; see ECMA-262, 11.4.3 (p 47).
331 template <> 331 template <>
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 if (state.op() == Token::ADD && 1461 if (state.op() == Token::ADD &&
1462 (left_type->Maybe(Type::String()) || right_type->Maybe(Type::String())) && 1462 (left_type->Maybe(Type::String()) || right_type->Maybe(Type::String())) &&
1463 !left_type->Is(Type::String()) && !right_type->Is(Type::String())) { 1463 !left_type->Is(Type::String()) && !right_type->Is(Type::String())) {
1464 // For the generic add stub a fast case for string addition is performance 1464 // For the generic add stub a fast case for string addition is performance
1465 // critical. 1465 // critical.
1466 if (left_type->Maybe(Type::String())) { 1466 if (left_type->Maybe(Type::String())) {
1467 IfBuilder if_leftisstring(this); 1467 IfBuilder if_leftisstring(this);
1468 if_leftisstring.If<HIsStringAndBranch>(left); 1468 if_leftisstring.If<HIsStringAndBranch>(left);
1469 if_leftisstring.Then(); 1469 if_leftisstring.Then();
1470 { 1470 {
1471 Push(BuildBinaryOperation(state.op(), left, right, Type::String(zone()), 1471 Push(BuildBinaryOperation(
1472 right_type, result_type, 1472 state.op(), left, right, Type::String(), right_type, result_type,
1473 state.fixed_right_arg(), allocation_mode, 1473 state.fixed_right_arg(), allocation_mode, state.strength()));
1474 state.strength()));
1475 } 1474 }
1476 if_leftisstring.Else(); 1475 if_leftisstring.Else();
1477 { 1476 {
1478 Push(BuildBinaryOperation( 1477 Push(BuildBinaryOperation(
1479 state.op(), left, right, left_type, right_type, result_type, 1478 state.op(), left, right, left_type, right_type, result_type,
1480 state.fixed_right_arg(), allocation_mode, state.strength())); 1479 state.fixed_right_arg(), allocation_mode, state.strength()));
1481 } 1480 }
1482 if_leftisstring.End(); 1481 if_leftisstring.End();
1483 result = Pop(); 1482 result = Pop();
1484 } else { 1483 } else {
1485 IfBuilder if_rightisstring(this); 1484 IfBuilder if_rightisstring(this);
1486 if_rightisstring.If<HIsStringAndBranch>(right); 1485 if_rightisstring.If<HIsStringAndBranch>(right);
1487 if_rightisstring.Then(); 1486 if_rightisstring.Then();
1488 { 1487 {
1489 Push(BuildBinaryOperation(state.op(), left, right, left_type, 1488 Push(BuildBinaryOperation(
1490 Type::String(zone()), result_type, 1489 state.op(), left, right, left_type, Type::String(), result_type,
1491 state.fixed_right_arg(), allocation_mode, 1490 state.fixed_right_arg(), allocation_mode, state.strength()));
1492 state.strength()));
1493 } 1491 }
1494 if_rightisstring.Else(); 1492 if_rightisstring.Else();
1495 { 1493 {
1496 Push(BuildBinaryOperation( 1494 Push(BuildBinaryOperation(
1497 state.op(), left, right, left_type, right_type, result_type, 1495 state.op(), left, right, left_type, right_type, result_type,
1498 state.fixed_right_arg(), allocation_mode, state.strength())); 1496 state.fixed_right_arg(), allocation_mode, state.strength()));
1499 } 1497 }
1500 if_rightisstring.End(); 1498 if_rightisstring.End();
1501 result = Pop(); 1499 result = Pop();
1502 } 1500 }
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after
2430 return Pop(); 2428 return Pop();
2431 } 2429 }
2432 2430
2433 2431
2434 Handle<Code> KeyedLoadGenericStub::GenerateCode() { 2432 Handle<Code> KeyedLoadGenericStub::GenerateCode() {
2435 return DoGenerateCode(this); 2433 return DoGenerateCode(this);
2436 } 2434 }
2437 2435
2438 } // namespace internal 2436 } // namespace internal
2439 } // namespace v8 2437 } // namespace v8
OLDNEW
« no previous file with comments | « src/code-stubs.cc ('k') | src/compiler/access-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698