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

Side by Side Diff: src/x64/lithium-x64.h

Issue 132373011: A64: Synchronize with r17635. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « src/x64/lithium-gap-resolver-x64.cc ('k') | src/x64/lithium-x64.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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 V(Context) \ 85 V(Context) \
86 V(DateField) \ 86 V(DateField) \
87 V(DebugBreak) \ 87 V(DebugBreak) \
88 V(DeclareGlobals) \ 88 V(DeclareGlobals) \
89 V(Deoptimize) \ 89 V(Deoptimize) \
90 V(DivI) \ 90 V(DivI) \
91 V(DoubleToI) \ 91 V(DoubleToI) \
92 V(DoubleToSmi) \ 92 V(DoubleToSmi) \
93 V(Drop) \ 93 V(Drop) \
94 V(DummyUse) \ 94 V(DummyUse) \
95 V(Dummy) \
95 V(ElementsKind) \ 96 V(ElementsKind) \
96 V(ForInCacheArray) \ 97 V(ForInCacheArray) \
97 V(ForInPrepareMap) \ 98 V(ForInPrepareMap) \
98 V(FunctionLiteral) \ 99 V(FunctionLiteral) \
99 V(GetCachedArrayIndex) \ 100 V(GetCachedArrayIndex) \
100 V(GlobalObject) \ 101 V(GlobalObject) \
101 V(GlobalReceiver) \ 102 V(GlobalReceiver) \
102 V(Goto) \ 103 V(Goto) \
103 V(HasCachedArrayIndexAndBranch) \ 104 V(HasCachedArrayIndexAndBranch) \
104 V(HasInstanceTypeAndBranch) \ 105 V(HasInstanceTypeAndBranch) \
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 V(NumberTagU) \ 148 V(NumberTagU) \
148 V(NumberUntagD) \ 149 V(NumberUntagD) \
149 V(OsrEntry) \ 150 V(OsrEntry) \
150 V(OuterContext) \ 151 V(OuterContext) \
151 V(Parameter) \ 152 V(Parameter) \
152 V(Power) \ 153 V(Power) \
153 V(PushArgument) \ 154 V(PushArgument) \
154 V(Random) \ 155 V(Random) \
155 V(RegExpLiteral) \ 156 V(RegExpLiteral) \
156 V(Return) \ 157 V(Return) \
158 V(SeqStringGetChar) \
157 V(SeqStringSetChar) \ 159 V(SeqStringSetChar) \
158 V(ShiftI) \ 160 V(ShiftI) \
159 V(SmiTag) \ 161 V(SmiTag) \
160 V(SmiUntag) \ 162 V(SmiUntag) \
161 V(StackCheck) \ 163 V(StackCheck) \
162 V(StoreCodeEntry) \ 164 V(StoreCodeEntry) \
163 V(StoreContextSlot) \ 165 V(StoreContextSlot) \
164 V(StoreGlobalCell) \ 166 V(StoreGlobalCell) \
165 V(StoreGlobalGeneric) \ 167 V(StoreGlobalGeneric) \
166 V(StoreKeyed) \ 168 V(StoreKeyed) \
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 void set_gap_instructions_size(int gap_instructions_size) { 417 void set_gap_instructions_size(int gap_instructions_size) {
416 gap_instructions_size_ = gap_instructions_size; 418 gap_instructions_size_ = gap_instructions_size;
417 } 419 }
418 int gap_instructions_size() { return gap_instructions_size_; } 420 int gap_instructions_size() { return gap_instructions_size_; }
419 421
420 private: 422 private:
421 int gap_instructions_size_; 423 int gap_instructions_size_;
422 }; 424 };
423 425
424 426
427 class LDummy V8_FINAL : public LTemplateInstruction<1, 0, 0> {
428 public:
429 explicit LDummy() { }
430 DECLARE_CONCRETE_INSTRUCTION(Dummy, "dummy")
431 };
432
433
425 class LDummyUse V8_FINAL : public LTemplateInstruction<1, 1, 0> { 434 class LDummyUse V8_FINAL : public LTemplateInstruction<1, 1, 0> {
426 public: 435 public:
427 explicit LDummyUse(LOperand* value) { 436 explicit LDummyUse(LOperand* value) {
428 inputs_[0] = value; 437 inputs_[0] = value;
429 } 438 }
430 DECLARE_CONCRETE_INSTRUCTION(DummyUse, "dummy-use") 439 DECLARE_CONCRETE_INSTRUCTION(DummyUse, "dummy-use")
431 }; 440 };
432 441
433 442
434 class LDeoptimize V8_FINAL : public LTemplateInstruction<0, 0, 0> { 443 class LDeoptimize V8_FINAL : public LTemplateInstruction<0, 0, 0> {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 475
467 class LParameter V8_FINAL : public LTemplateInstruction<1, 0, 0> { 476 class LParameter V8_FINAL : public LTemplateInstruction<1, 0, 0> {
468 public: 477 public:
469 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE { 478 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
470 return false; 479 return false;
471 } 480 }
472 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") 481 DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter")
473 }; 482 };
474 483
475 484
476 class LCallStub V8_FINAL : public LTemplateInstruction<1, 0, 0> { 485 class LCallStub V8_FINAL : public LTemplateInstruction<1, 1, 0> {
477 public: 486 public:
487 explicit LCallStub(LOperand* context) {
488 inputs_[0] = context;
489 }
490
491 LOperand* context() { return inputs_[0]; }
492
478 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub") 493 DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub")
479 DECLARE_HYDROGEN_ACCESSOR(CallStub) 494 DECLARE_HYDROGEN_ACCESSOR(CallStub)
480 495
481 TranscendentalCache::Type transcendental_type() { 496 TranscendentalCache::Type transcendental_type() {
482 return hydrogen()->transcendental_type(); 497 return hydrogen()->transcendental_type();
483 } 498 }
484 }; 499 };
485 500
486 501
487 class LUnknownOSRValue V8_FINAL : public LTemplateInstruction<1, 0, 0> { 502 class LUnknownOSRValue V8_FINAL : public LTemplateInstruction<1, 0, 0> {
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 inputs_[0] = value; 736 inputs_[0] = value;
722 } 737 }
723 738
724 LOperand* value() { return inputs_[0]; } 739 LOperand* value() { return inputs_[0]; }
725 740
726 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") 741 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round")
727 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) 742 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
728 }; 743 };
729 744
730 745
731 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 1, 0> { 746 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> {
732 public: 747 public:
733 explicit LMathAbs(LOperand* value) { 748 explicit LMathAbs(LOperand* context, LOperand* value) {
749 inputs_[1] = context;
734 inputs_[0] = value; 750 inputs_[0] = value;
735 } 751 }
736 752
753 LOperand* context() { return inputs_[1]; }
737 LOperand* value() { return inputs_[0]; } 754 LOperand* value() { return inputs_[0]; }
738 755
739 DECLARE_CONCRETE_INSTRUCTION(MathAbs, "math-abs") 756 DECLARE_CONCRETE_INSTRUCTION(MathAbs, "math-abs")
740 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) 757 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
741 }; 758 };
742 759
743 760
744 class LMathLog V8_FINAL : public LTemplateInstruction<1, 1, 0> { 761 class LMathLog V8_FINAL : public LTemplateInstruction<1, 1, 0> {
745 public: 762 public:
746 explicit LMathLog(LOperand* value) { 763 explicit LMathLog(LOperand* value) {
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 LOperand* temp() { return temps_[0]; } 932 LOperand* temp() { return temps_[0]; }
916 933
917 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch, 934 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch,
918 "is-undetectable-and-branch") 935 "is-undetectable-and-branch")
919 DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch) 936 DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch)
920 937
921 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 938 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
922 }; 939 };
923 940
924 941
925 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<2, 0> { 942 class LStringCompareAndBranch V8_FINAL : public LControlInstruction<3, 0> {
926 public: 943 public:
927 explicit LStringCompareAndBranch(LOperand* left, LOperand* right) { 944 explicit LStringCompareAndBranch(LOperand* context,
928 inputs_[0] = left; 945 LOperand* left,
929 inputs_[1] = right; 946 LOperand* right) {
947 inputs_[0] = context;
948 inputs_[1] = left;
949 inputs_[2] = right;
930 } 950 }
931 951
932 LOperand* left() { return inputs_[0]; } 952 LOperand* context() { return inputs_[0]; }
933 LOperand* right() { return inputs_[1]; } 953 LOperand* left() { return inputs_[1]; }
954 LOperand* right() { return inputs_[2]; }
934 955
935 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch, 956 DECLARE_CONCRETE_INSTRUCTION(StringCompareAndBranch,
936 "string-compare-and-branch") 957 "string-compare-and-branch")
937 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) 958 DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch)
938 959
939 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 960 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
940 961
941 Token::Value op() const { return hydrogen()->token(); } 962 Token::Value op() const { return hydrogen()->token(); }
942 }; 963 };
943 964
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 LOperand* temp2() { return temps_[1]; } 1022 LOperand* temp2() { return temps_[1]; }
1002 1023
1003 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch, 1024 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch,
1004 "class-of-test-and-branch") 1025 "class-of-test-and-branch")
1005 DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch) 1026 DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch)
1006 1027
1007 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1028 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1008 }; 1029 };
1009 1030
1010 1031
1011 class LCmpT V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1032 class LCmpT V8_FINAL : public LTemplateInstruction<1, 3, 0> {
1012 public: 1033 public:
1013 LCmpT(LOperand* left, LOperand* right) { 1034 LCmpT(LOperand* context, LOperand* left, LOperand* right) {
1014 inputs_[0] = left; 1035 inputs_[0] = context;
1015 inputs_[1] = right; 1036 inputs_[1] = left;
1037 inputs_[2] = right;
1016 } 1038 }
1017 1039
1018 LOperand* left() { return inputs_[0]; } 1040 LOperand* context() { return inputs_[0]; }
1019 LOperand* right() { return inputs_[1]; } 1041 LOperand* left() { return inputs_[1]; }
1042 LOperand* right() { return inputs_[2]; }
1020 1043
1021 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") 1044 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
1022 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric) 1045 DECLARE_HYDROGEN_ACCESSOR(CompareGeneric)
1023 1046
1024 Token::Value op() const { return hydrogen()->token(); } 1047 Token::Value op() const { return hydrogen()->token(); }
1025 }; 1048 };
1026 1049
1027 1050
1028 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1051 class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 3, 0> {
1029 public: 1052 public:
1030 LInstanceOf(LOperand* left, LOperand* right) { 1053 LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
1031 inputs_[0] = left; 1054 inputs_[0] = context;
1032 inputs_[1] = right; 1055 inputs_[1] = left;
1056 inputs_[2] = right;
1033 } 1057 }
1034 1058
1035 LOperand* left() { return inputs_[0]; } 1059 LOperand* context() { return inputs_[0]; }
1036 LOperand* right() { return inputs_[1]; } 1060 LOperand* left() { return inputs_[1]; }
1061 LOperand* right() { return inputs_[2]; }
1037 1062
1038 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of") 1063 DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
1039 }; 1064 };
1040 1065
1041 1066
1042 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 1, 1> { 1067 class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 2, 1> {
1043 public: 1068 public:
1044 LInstanceOfKnownGlobal(LOperand* value, LOperand* temp) { 1069 LInstanceOfKnownGlobal(LOperand* context, LOperand* value, LOperand* temp) {
1045 inputs_[0] = value; 1070 inputs_[0] = context;
1071 inputs_[1] = value;
1046 temps_[0] = temp; 1072 temps_[0] = temp;
1047 } 1073 }
1048 1074
1049 LOperand* value() { return inputs_[0]; } 1075 LOperand* context() { return inputs_[0]; }
1076 LOperand* value() { return inputs_[1]; }
1050 LOperand* temp() { return temps_[0]; } 1077 LOperand* temp() { return temps_[0]; }
1051 1078
1052 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal, 1079 DECLARE_CONCRETE_INSTRUCTION(InstanceOfKnownGlobal,
1053 "instance-of-known-global") 1080 "instance-of-known-global")
1054 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal) 1081 DECLARE_HYDROGEN_ACCESSOR(InstanceOfKnownGlobal)
1055 1082
1056 Handle<JSFunction> function() const { return hydrogen()->function(); } 1083 Handle<JSFunction> function() const { return hydrogen()->function(); }
1057 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() { 1084 LEnvironment* GetDeferredLazyDeoptimizationEnvironment() {
1058 return lazy_deopt_env_; 1085 return lazy_deopt_env_;
1059 } 1086 }
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 Smi* index() const { return index_; } 1301 Smi* index() const { return index_; }
1275 1302
1276 DECLARE_CONCRETE_INSTRUCTION(DateField, "date-field") 1303 DECLARE_CONCRETE_INSTRUCTION(DateField, "date-field")
1277 DECLARE_HYDROGEN_ACCESSOR(DateField) 1304 DECLARE_HYDROGEN_ACCESSOR(DateField)
1278 1305
1279 private: 1306 private:
1280 Smi* index_; 1307 Smi* index_;
1281 }; 1308 };
1282 1309
1283 1310
1311 class LSeqStringGetChar V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1312 public:
1313 LSeqStringGetChar(LOperand* string, LOperand* index) {
1314 inputs_[0] = string;
1315 inputs_[1] = index;
1316 }
1317
1318 LOperand* string() const { return inputs_[0]; }
1319 LOperand* index() const { return inputs_[1]; }
1320
1321 DECLARE_CONCRETE_INSTRUCTION(SeqStringGetChar, "seq-string-get-char")
1322 DECLARE_HYDROGEN_ACCESSOR(SeqStringGetChar)
1323 };
1324
1325
1284 class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 3, 0> { 1326 class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 3, 0> {
1285 public: 1327 public:
1286 LSeqStringSetChar(LOperand* string, 1328 LSeqStringSetChar(LOperand* string,
1287 LOperand* index, 1329 LOperand* index,
1288 LOperand* value) { 1330 LOperand* value) {
1289 inputs_[0] = string; 1331 inputs_[0] = string;
1290 inputs_[1] = index; 1332 inputs_[1] = index;
1291 inputs_[2] = value; 1333 inputs_[2] = value;
1292 } 1334 }
1293 1335
1294 LOperand* string() { return inputs_[0]; } 1336 LOperand* string() { return inputs_[0]; }
1295 LOperand* index() { return inputs_[1]; } 1337 LOperand* index() { return inputs_[1]; }
1296 LOperand* value() { return inputs_[2]; } 1338 LOperand* value() { return inputs_[2]; }
1297 1339
1298 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char") 1340 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar, "seq-string-set-char")
1299 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar) 1341 DECLARE_HYDROGEN_ACCESSOR(SeqStringSetChar)
1300 }; 1342 };
1301 1343
1302 1344
1303 class LThrow V8_FINAL : public LTemplateInstruction<0, 1, 0> { 1345 class LThrow V8_FINAL : public LTemplateInstruction<0, 2, 0> {
1304 public: 1346 public:
1305 explicit LThrow(LOperand* value) { 1347 explicit LThrow(LOperand* context, LOperand* value) {
1306 inputs_[0] = value; 1348 inputs_[0] = context;
1349 inputs_[1] = value;
1307 } 1350 }
1308 1351
1309 LOperand* value() { return inputs_[0]; } 1352 LOperand* context() { return inputs_[0]; }
1353 LOperand* value() { return inputs_[1]; }
1310 1354
1311 DECLARE_CONCRETE_INSTRUCTION(Throw, "throw") 1355 DECLARE_CONCRETE_INSTRUCTION(Throw, "throw")
1312 }; 1356 };
1313 1357
1314 1358
1315 class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1359 class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1316 public: 1360 public:
1317 LAddI(LOperand* left, LOperand* right) { 1361 LAddI(LOperand* left, LOperand* right) {
1318 inputs_[0] = left; 1362 inputs_[0] = left;
1319 inputs_[1] = right; 1363 inputs_[1] = right;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 return LInstruction::kArithmeticD; 1444 return LInstruction::kArithmeticD;
1401 } 1445 }
1402 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; 1446 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE;
1403 virtual const char* Mnemonic() const V8_OVERRIDE; 1447 virtual const char* Mnemonic() const V8_OVERRIDE;
1404 1448
1405 private: 1449 private:
1406 Token::Value op_; 1450 Token::Value op_;
1407 }; 1451 };
1408 1452
1409 1453
1410 class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1454 class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 3, 0> {
1411 public: 1455 public:
1412 LArithmeticT(Token::Value op, LOperand* left, LOperand* right) 1456 LArithmeticT(Token::Value op,
1457 LOperand* context,
1458 LOperand* left,
1459 LOperand* right)
1413 : op_(op) { 1460 : op_(op) {
1414 inputs_[0] = left; 1461 inputs_[0] = context;
1415 inputs_[1] = right; 1462 inputs_[1] = left;
1463 inputs_[2] = right;
1416 } 1464 }
1417 1465
1418 Token::Value op() const { return op_; } 1466 Token::Value op() const { return op_; }
1419 LOperand* left() { return inputs_[0]; } 1467 LOperand* context() { return inputs_[0]; }
1420 LOperand* right() { return inputs_[1]; } 1468 LOperand* left() { return inputs_[1]; }
1469 LOperand* right() { return inputs_[2]; }
1421 1470
1422 virtual Opcode opcode() const V8_OVERRIDE { 1471 virtual Opcode opcode() const V8_OVERRIDE {
1423 return LInstruction::kArithmeticT; 1472 return LInstruction::kArithmeticT;
1424 } 1473 }
1425 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE; 1474 virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE;
1426 virtual const char* Mnemonic() const V8_OVERRIDE; 1475 virtual const char* Mnemonic() const V8_OVERRIDE;
1427 1476
1428 private: 1477 private:
1429 Token::Value op_; 1478 Token::Value op_;
1430 }; 1479 };
1431 1480
1432 1481
1433 class LReturn V8_FINAL : public LTemplateInstruction<0, 2, 0> { 1482 class LReturn V8_FINAL : public LTemplateInstruction<0, 3, 0> {
1434 public: 1483 public:
1435 explicit LReturn(LOperand* value, LOperand* parameter_count) { 1484 explicit LReturn(LOperand* value,
1485 LOperand* context,
1486 LOperand* parameter_count) {
1436 inputs_[0] = value; 1487 inputs_[0] = value;
1437 inputs_[1] = parameter_count; 1488 inputs_[1] = context;
1489 inputs_[2] = parameter_count;
1438 } 1490 }
1439 1491
1440 LOperand* value() { return inputs_[0]; } 1492 LOperand* value() { return inputs_[0]; }
1493 LOperand* context() { return inputs_[1]; }
1441 1494
1442 bool has_constant_parameter_count() { 1495 bool has_constant_parameter_count() {
1443 return parameter_count()->IsConstantOperand(); 1496 return parameter_count()->IsConstantOperand();
1444 } 1497 }
1445 LConstantOperand* constant_parameter_count() { 1498 LConstantOperand* constant_parameter_count() {
1446 ASSERT(has_constant_parameter_count()); 1499 ASSERT(has_constant_parameter_count());
1447 return LConstantOperand::cast(parameter_count()); 1500 return LConstantOperand::cast(parameter_count());
1448 } 1501 }
1449 LOperand* parameter_count() { return inputs_[1]; } 1502 LOperand* parameter_count() { return inputs_[2]; }
1450 1503
1451 DECLARE_CONCRETE_INSTRUCTION(Return, "return") 1504 DECLARE_CONCRETE_INSTRUCTION(Return, "return")
1452 DECLARE_HYDROGEN_ACCESSOR(Return) 1505 DECLARE_HYDROGEN_ACCESSOR(Return)
1453 }; 1506 };
1454 1507
1455 1508
1456 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1509 class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1457 public: 1510 public:
1458 explicit LLoadNamedField(LOperand* object) { 1511 explicit LLoadNamedField(LOperand* object) {
1459 inputs_[0] = object; 1512 inputs_[0] = object;
1460 } 1513 }
1461 1514
1462 LOperand* object() { return inputs_[0]; } 1515 LOperand* object() { return inputs_[0]; }
1463 1516
1464 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field") 1517 DECLARE_CONCRETE_INSTRUCTION(LoadNamedField, "load-named-field")
1465 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField) 1518 DECLARE_HYDROGEN_ACCESSOR(LoadNamedField)
1466 }; 1519 };
1467 1520
1468 1521
1469 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1522 class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1470 public: 1523 public:
1471 explicit LLoadNamedGeneric(LOperand* object) { 1524 explicit LLoadNamedGeneric(LOperand* context, LOperand* object) {
1472 inputs_[0] = object; 1525 inputs_[0] = context;
1526 inputs_[1] = object;
1473 } 1527 }
1474 1528
1475 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") 1529 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic")
1476 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) 1530 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric)
1477 1531
1478 LOperand* object() { return inputs_[0]; } 1532 LOperand* context() { return inputs_[0]; }
1533 LOperand* object() { return inputs_[1]; }
1479 Handle<Object> name() const { return hydrogen()->name(); } 1534 Handle<Object> name() const { return hydrogen()->name(); }
1480 }; 1535 };
1481 1536
1482 1537
1483 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1538 class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1484 public: 1539 public:
1485 explicit LLoadFunctionPrototype(LOperand* function) { 1540 explicit LLoadFunctionPrototype(LOperand* function) {
1486 inputs_[0] = function; 1541 inputs_[0] = function;
1487 } 1542 }
1488 1543
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 LOperand* elements() { return inputs_[0]; } 1587 LOperand* elements() { return inputs_[0]; }
1533 LOperand* key() { return inputs_[1]; } 1588 LOperand* key() { return inputs_[1]; }
1534 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1589 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1535 uint32_t additional_index() const { return hydrogen()->index_offset(); } 1590 uint32_t additional_index() const { return hydrogen()->index_offset(); }
1536 ElementsKind elements_kind() const { 1591 ElementsKind elements_kind() const {
1537 return hydrogen()->elements_kind(); 1592 return hydrogen()->elements_kind();
1538 } 1593 }
1539 }; 1594 };
1540 1595
1541 1596
1542 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> { 1597 class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 3, 0> {
1543 public: 1598 public:
1544 LLoadKeyedGeneric(LOperand* obj, LOperand* key) { 1599 LLoadKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key) {
1545 inputs_[0] = obj; 1600 inputs_[0] = context;
1546 inputs_[1] = key; 1601 inputs_[1] = obj;
1602 inputs_[2] = key;
1547 } 1603 }
1548 1604
1549 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic") 1605 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric, "load-keyed-generic")
1550 1606
1551 LOperand* object() { return inputs_[0]; } 1607 LOperand* context() { return inputs_[0]; }
1552 LOperand* key() { return inputs_[1]; } 1608 LOperand* object() { return inputs_[1]; }
1609 LOperand* key() { return inputs_[2]; }
1553 }; 1610 };
1554 1611
1555 1612
1556 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1613 class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> {
1557 public: 1614 public:
1558 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell") 1615 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell")
1559 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell) 1616 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell)
1560 }; 1617 };
1561 1618
1562 1619
1563 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1620 class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1564 public: 1621 public:
1565 explicit LLoadGlobalGeneric(LOperand* global_object) { 1622 explicit LLoadGlobalGeneric(LOperand* context, LOperand* global_object) {
1566 inputs_[0] = global_object; 1623 inputs_[0] = context;
1624 inputs_[1] = global_object;
1567 } 1625 }
1568 1626
1569 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic") 1627 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
1570 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric) 1628 DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric)
1571 1629
1572 LOperand* global_object() { return inputs_[0]; } 1630 LOperand* context() { return inputs_[0]; }
1631 LOperand* global_object() { return inputs_[1]; }
1573 Handle<Object> name() const { return hydrogen()->name(); } 1632 Handle<Object> name() const { return hydrogen()->name(); }
1574 bool for_typeof() const { return hydrogen()->for_typeof(); } 1633 bool for_typeof() const { return hydrogen()->for_typeof(); }
1575 }; 1634 };
1576 1635
1577 1636
1578 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> { 1637 class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 1> {
1579 public: 1638 public:
1580 explicit LStoreGlobalCell(LOperand* value, LOperand* temp) { 1639 explicit LStoreGlobalCell(LOperand* value, LOperand* temp) {
1581 inputs_[0] = value; 1640 inputs_[0] = value;
1582 temps_[0] = temp; 1641 temps_[0] = temp;
1583 } 1642 }
1584 1643
1585 LOperand* value() { return inputs_[0]; } 1644 LOperand* value() { return inputs_[0]; }
1586 LOperand* temp() { return temps_[0]; } 1645 LOperand* temp() { return temps_[0]; }
1587 1646
1588 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell") 1647 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell")
1589 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell) 1648 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell)
1590 }; 1649 };
1591 1650
1592 1651
1593 class LStoreGlobalGeneric V8_FINAL : public LTemplateInstruction<0, 2, 0> { 1652 class LStoreGlobalGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> {
1594 public: 1653 public:
1595 explicit LStoreGlobalGeneric(LOperand* global_object, 1654 explicit LStoreGlobalGeneric(LOperand* context,
1655 LOperand* global_object,
1596 LOperand* value) { 1656 LOperand* value) {
1597 inputs_[0] = global_object; 1657 inputs_[0] = context;
1598 inputs_[1] = value; 1658 inputs_[1] = global_object;
1659 inputs_[2] = value;
1599 } 1660 }
1600 1661
1601 LOperand* global_object() { return inputs_[0]; } 1662 LOperand* context() { return inputs_[0]; }
1602 LOperand* value() { return inputs_[1]; } 1663 LOperand* global_object() { return inputs_[1]; }
1664 LOperand* value() { return inputs_[2]; }
1603 1665
1604 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic") 1666 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric, "store-global-generic")
1605 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric) 1667 DECLARE_HYDROGEN_ACCESSOR(StoreGlobalGeneric)
1606 1668
1607 Handle<Object> name() const { return hydrogen()->name(); } 1669 Handle<Object> name() const { return hydrogen()->name(); }
1608 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } 1670 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); }
1609 }; 1671 };
1610 1672
1611 1673
1612 class LLoadContextSlot V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1674 class LLoadContextSlot V8_FINAL : public LTemplateInstruction<1, 1, 0> {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 explicit LOuterContext(LOperand* context) { 1786 explicit LOuterContext(LOperand* context) {
1725 inputs_[0] = context; 1787 inputs_[0] = context;
1726 } 1788 }
1727 1789
1728 LOperand* context() { return inputs_[0]; } 1790 LOperand* context() { return inputs_[0]; }
1729 1791
1730 DECLARE_CONCRETE_INSTRUCTION(OuterContext, "outer-context") 1792 DECLARE_CONCRETE_INSTRUCTION(OuterContext, "outer-context")
1731 }; 1793 };
1732 1794
1733 1795
1734 class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 0, 0> { 1796 class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 1, 0> {
1735 public: 1797 public:
1798 explicit LDeclareGlobals(LOperand* context) {
1799 inputs_[0] = context;
1800 }
1801
1802 LOperand* context() { return inputs_[0]; }
1803
1736 DECLARE_CONCRETE_INSTRUCTION(DeclareGlobals, "declare-globals") 1804 DECLARE_CONCRETE_INSTRUCTION(DeclareGlobals, "declare-globals")
1737 DECLARE_HYDROGEN_ACCESSOR(DeclareGlobals) 1805 DECLARE_HYDROGEN_ACCESSOR(DeclareGlobals)
1738 }; 1806 };
1739 1807
1740 1808
1741 class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1809 class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1742 public: 1810 public:
1811 explicit LGlobalObject(LOperand* context) {
1812 inputs_[0] = context;
1813 }
1814
1815 LOperand* context() { return inputs_[0]; }
1816
1743 DECLARE_CONCRETE_INSTRUCTION(GlobalObject, "global-object") 1817 DECLARE_CONCRETE_INSTRUCTION(GlobalObject, "global-object")
1744 }; 1818 };
1745 1819
1746 1820
1747 class LGlobalReceiver V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1821 class LGlobalReceiver V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1748 public: 1822 public:
1749 explicit LGlobalReceiver(LOperand* global_object) { 1823 explicit LGlobalReceiver(LOperand* global_object) {
1750 inputs_[0] = global_object; 1824 inputs_[0] = global_object;
1751 } 1825 }
1752 1826
1753 LOperand* global() { return inputs_[0]; } 1827 LOperand* global() { return inputs_[0]; }
1754 1828
1755 DECLARE_CONCRETE_INSTRUCTION(GlobalReceiver, "global-receiver") 1829 DECLARE_CONCRETE_INSTRUCTION(GlobalReceiver, "global-receiver")
1756 }; 1830 };
1757 1831
1758 1832
1759 class LCallConstantFunction V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1833 class LCallConstantFunction V8_FINAL : public LTemplateInstruction<1, 0, 0> {
1760 public: 1834 public:
1761 DECLARE_CONCRETE_INSTRUCTION(CallConstantFunction, "call-constant-function") 1835 DECLARE_CONCRETE_INSTRUCTION(CallConstantFunction, "call-constant-function")
1762 DECLARE_HYDROGEN_ACCESSOR(CallConstantFunction) 1836 DECLARE_HYDROGEN_ACCESSOR(CallConstantFunction)
1763 1837
1764 virtual void PrintDataTo(StringStream* stream); 1838 virtual void PrintDataTo(StringStream* stream);
1765 1839
1766 Handle<JSFunction> function() { return hydrogen()->function(); } 1840 Handle<JSFunction> function() { return hydrogen()->function(); }
1767 int arity() const { return hydrogen()->argument_count() - 1; } 1841 int arity() const { return hydrogen()->argument_count() - 1; }
1768 }; 1842 };
1769 1843
1770 1844
1771 class LInvokeFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1845 class LInvokeFunction V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1772 public: 1846 public:
1773 explicit LInvokeFunction(LOperand* function) { 1847 LInvokeFunction(LOperand* context, LOperand* function) {
1774 inputs_[0] = function; 1848 inputs_[0] = context;
1849 inputs_[1] = function;
1775 } 1850 }
1776 1851
1777 LOperand* function() { return inputs_[0]; } 1852 LOperand* context() { return inputs_[0]; }
1853 LOperand* function() { return inputs_[1]; }
1778 1854
1779 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") 1855 DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function")
1780 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) 1856 DECLARE_HYDROGEN_ACCESSOR(InvokeFunction)
1781 1857
1782 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1858 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1783 1859
1784 int arity() const { return hydrogen()->argument_count() - 1; } 1860 int arity() const { return hydrogen()->argument_count() - 1; }
1785 }; 1861 };
1786 1862
1787 1863
1788 class LCallKeyed V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1864 class LCallKeyed V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1789 public: 1865 public:
1790 explicit LCallKeyed(LOperand* key) { 1866 LCallKeyed(LOperand* context, LOperand* key) {
1791 inputs_[0] = key; 1867 inputs_[0] = context;
1868 inputs_[1] = key;
1792 } 1869 }
1793 1870
1794 DECLARE_CONCRETE_INSTRUCTION(CallKeyed, "call-keyed") 1871 DECLARE_CONCRETE_INSTRUCTION(CallKeyed, "call-keyed")
1795 DECLARE_HYDROGEN_ACCESSOR(CallKeyed) 1872 DECLARE_HYDROGEN_ACCESSOR(CallKeyed)
1796 1873
1797 LOperand* key() { return inputs_[0]; } 1874 LOperand* context() { return inputs_[0]; }
1875 LOperand* key() { return inputs_[1]; }
1798 1876
1799 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1877 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1800 1878
1801 int arity() const { return hydrogen()->argument_count() - 1; } 1879 int arity() const { return hydrogen()->argument_count() - 1; }
1802 }; 1880 };
1803 1881
1804 1882
1805 class LCallNamed V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1883 class LCallNamed V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1806 public: 1884 public:
1885 explicit LCallNamed(LOperand* context) {
1886 inputs_[0] = context;
1887 }
1888
1889 LOperand* context() { return inputs_[0]; }
1890
1807 DECLARE_CONCRETE_INSTRUCTION(CallNamed, "call-named") 1891 DECLARE_CONCRETE_INSTRUCTION(CallNamed, "call-named")
1808 DECLARE_HYDROGEN_ACCESSOR(CallNamed) 1892 DECLARE_HYDROGEN_ACCESSOR(CallNamed)
1809 1893
1810 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1894 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1811 1895
1812 Handle<String> name() const { return hydrogen()->name(); } 1896 Handle<String> name() const { return hydrogen()->name(); }
1813 int arity() const { return hydrogen()->argument_count() - 1; } 1897 int arity() const { return hydrogen()->argument_count() - 1; }
1814 }; 1898 };
1815 1899
1816 1900
1817 class LCallFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1901 class LCallFunction V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1818 public: 1902 public:
1819 explicit LCallFunction(LOperand* function) { 1903 LCallFunction(LOperand* context, LOperand* function) {
1820 inputs_[0] = function; 1904 inputs_[0] = context;
1905 inputs_[1] = function;
1821 } 1906 }
1822 1907
1823 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function") 1908 DECLARE_CONCRETE_INSTRUCTION(CallFunction, "call-function")
1824 DECLARE_HYDROGEN_ACCESSOR(CallFunction) 1909 DECLARE_HYDROGEN_ACCESSOR(CallFunction)
1825 1910
1826 LOperand* function() { return inputs_[0]; } 1911 LOperand* context() { return inputs_[0]; }
1912 LOperand* function() { return inputs_[1]; }
1827 int arity() const { return hydrogen()->argument_count() - 1; } 1913 int arity() const { return hydrogen()->argument_count() - 1; }
1828 }; 1914 };
1829 1915
1830 1916
1831 class LCallGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1917 class LCallGlobal V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1832 public: 1918 public:
1919 explicit LCallGlobal(LOperand* context) {
1920 inputs_[0] = context;
1921 }
1922
1923 LOperand* context() { return inputs_[0]; }
1924
1833 DECLARE_CONCRETE_INSTRUCTION(CallGlobal, "call-global") 1925 DECLARE_CONCRETE_INSTRUCTION(CallGlobal, "call-global")
1834 DECLARE_HYDROGEN_ACCESSOR(CallGlobal) 1926 DECLARE_HYDROGEN_ACCESSOR(CallGlobal)
1835 1927
1836 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1928 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1837 1929
1838 Handle<String> name() const {return hydrogen()->name(); } 1930 Handle<String> name() const {return hydrogen()->name(); }
1839 int arity() const { return hydrogen()->argument_count() - 1; } 1931 int arity() const { return hydrogen()->argument_count() - 1; }
1840 }; 1932 };
1841 1933
1842 1934
1843 class LCallKnownGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1935 class LCallKnownGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> {
1844 public: 1936 public:
1845 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal, "call-known-global") 1937 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal, "call-known-global")
1846 DECLARE_HYDROGEN_ACCESSOR(CallKnownGlobal) 1938 DECLARE_HYDROGEN_ACCESSOR(CallKnownGlobal)
1847 1939
1848 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1940 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1849 1941
1850 int arity() const { return hydrogen()->argument_count() - 1; } 1942 int arity() const { return hydrogen()->argument_count() - 1; }
1851 }; 1943 };
1852 1944
1853 1945
1854 class LCallNew V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1946 class LCallNew V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1855 public: 1947 public:
1856 explicit LCallNew(LOperand* constructor) { 1948 LCallNew(LOperand* context, LOperand* constructor) {
1857 inputs_[0] = constructor; 1949 inputs_[0] = context;
1950 inputs_[1] = constructor;
1858 } 1951 }
1859 1952
1860 LOperand* constructor() { return inputs_[0]; } 1953 LOperand* context() { return inputs_[0]; }
1954 LOperand* constructor() { return inputs_[1]; }
1861 1955
1862 DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new") 1956 DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new")
1863 DECLARE_HYDROGEN_ACCESSOR(CallNew) 1957 DECLARE_HYDROGEN_ACCESSOR(CallNew)
1864 1958
1865 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1959 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1866 1960
1867 int arity() const { return hydrogen()->argument_count() - 1; } 1961 int arity() const { return hydrogen()->argument_count() - 1; }
1868 }; 1962 };
1869 1963
1870 1964
1871 class LCallNewArray V8_FINAL : public LTemplateInstruction<1, 1, 0> { 1965 class LCallNewArray V8_FINAL : public LTemplateInstruction<1, 2, 0> {
1872 public: 1966 public:
1873 explicit LCallNewArray(LOperand* constructor) { 1967 LCallNewArray(LOperand* context, LOperand* constructor) {
1874 inputs_[0] = constructor; 1968 inputs_[0] = context;
1969 inputs_[1] = constructor;
1875 } 1970 }
1876 1971
1877 LOperand* constructor() { return inputs_[0]; } 1972 LOperand* context() { return inputs_[0]; }
1973 LOperand* constructor() { return inputs_[1]; }
1878 1974
1879 DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array") 1975 DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array")
1880 DECLARE_HYDROGEN_ACCESSOR(CallNewArray) 1976 DECLARE_HYDROGEN_ACCESSOR(CallNewArray)
1881 1977
1882 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 1978 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
1883 1979
1884 int arity() const { return hydrogen()->argument_count() - 1; } 1980 int arity() const { return hydrogen()->argument_count() - 1; }
1885 }; 1981 };
1886 1982
1887 1983
1888 class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 0, 0> { 1984 class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 1, 0> {
1889 public: 1985 public:
1986 explicit LCallRuntime(LOperand* context) {
1987 inputs_[0] = context;
1988 }
1989
1990 LOperand* context() { return inputs_[0]; }
1991
1890 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") 1992 DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime")
1891 DECLARE_HYDROGEN_ACCESSOR(CallRuntime) 1993 DECLARE_HYDROGEN_ACCESSOR(CallRuntime)
1892 1994
1893 virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE { 1995 virtual bool ClobbersDoubleRegisters() const V8_OVERRIDE {
1894 return save_doubles() == kDontSaveFPRegs; 1996 return save_doubles() == kDontSaveFPRegs;
1895 } 1997 }
1896 1998
1897 const Runtime::Function* function() const { return hydrogen()->function(); } 1999 const Runtime::Function* function() const { return hydrogen()->function(); }
1898 int arity() const { return hydrogen()->argument_count(); } 2000 int arity() const { return hydrogen()->argument_count(); }
1899 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); } 2001 SaveFPRegsMode save_doubles() const { return hydrogen()->save_doubles(); }
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 2201
2100 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2202 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2101 2203
2102 Handle<Map> transition() const { return hydrogen()->transition_map(); } 2204 Handle<Map> transition() const { return hydrogen()->transition_map(); }
2103 Representation representation() const { 2205 Representation representation() const {
2104 return hydrogen()->field_representation(); 2206 return hydrogen()->field_representation();
2105 } 2207 }
2106 }; 2208 };
2107 2209
2108 2210
2109 class LStoreNamedGeneric V8_FINAL : public LTemplateInstruction<0, 2, 0> { 2211 class LStoreNamedGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> {
2110 public: 2212 public:
2111 LStoreNamedGeneric(LOperand* object, LOperand* value) { 2213 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) {
2112 inputs_[0] = object; 2214 inputs_[0] = context;
2113 inputs_[1] = value; 2215 inputs_[1] = object;
2216 inputs_[2] = value;
2114 } 2217 }
2115 2218
2116 LOperand* object() { return inputs_[0]; } 2219 LOperand* context() { return inputs_[0]; }
2117 LOperand* value() { return inputs_[1]; } 2220 LOperand* object() { return inputs_[1]; }
2221 LOperand* value() { return inputs_[2]; }
2118 2222
2119 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") 2223 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic")
2120 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) 2224 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric)
2121 2225
2122 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2226 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2123 2227
2124 Handle<Object> name() const { return hydrogen()->name(); } 2228 Handle<Object> name() const { return hydrogen()->name(); }
2125 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } 2229 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); }
2126 }; 2230 };
2127 2231
(...skipping 14 matching lines...) Expand all
2142 2246
2143 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") 2247 DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed")
2144 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) 2248 DECLARE_HYDROGEN_ACCESSOR(StoreKeyed)
2145 2249
2146 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2250 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2147 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } 2251 bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); }
2148 uint32_t additional_index() const { return hydrogen()->index_offset(); } 2252 uint32_t additional_index() const { return hydrogen()->index_offset(); }
2149 }; 2253 };
2150 2254
2151 2255
2152 class LStoreKeyedGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> { 2256 class LStoreKeyedGeneric V8_FINAL : public LTemplateInstruction<0, 4, 0> {
2153 public: 2257 public:
2154 LStoreKeyedGeneric(LOperand* object, LOperand* key, LOperand* value) { 2258 LStoreKeyedGeneric(LOperand* context,
2155 inputs_[0] = object; 2259 LOperand* object,
2156 inputs_[1] = key; 2260 LOperand* key,
2157 inputs_[2] = value; 2261 LOperand* value) {
2262 inputs_[0] = context;
2263 inputs_[1] = object;
2264 inputs_[2] = key;
2265 inputs_[3] = value;
2158 } 2266 }
2159 2267
2160 LOperand* object() { return inputs_[0]; } 2268 LOperand* context() { return inputs_[0]; }
2161 LOperand* key() { return inputs_[1]; } 2269 LOperand* object() { return inputs_[1]; }
2162 LOperand* value() { return inputs_[2]; } 2270 LOperand* key() { return inputs_[2]; }
2271 LOperand* value() { return inputs_[3]; }
2163 2272
2164 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 2273 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
2165 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) 2274 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric)
2166 2275
2167 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2276 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2168 2277
2169 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); } 2278 StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); }
2170 }; 2279 };
2171 2280
2172 2281
2173 class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 1, 2> { 2282 class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 2, 2> {
2174 public: 2283 public:
2175 LTransitionElementsKind(LOperand* object, 2284 LTransitionElementsKind(LOperand* object,
2285 LOperand* context,
2176 LOperand* new_map_temp, 2286 LOperand* new_map_temp,
2177 LOperand* temp) { 2287 LOperand* temp) {
2178 inputs_[0] = object; 2288 inputs_[0] = object;
2289 inputs_[1] = context;
2179 temps_[0] = new_map_temp; 2290 temps_[0] = new_map_temp;
2180 temps_[1] = temp; 2291 temps_[1] = temp;
2181 } 2292 }
2182 2293
2183 LOperand* object() { return inputs_[0]; } 2294 LOperand* object() { return inputs_[0]; }
2295 LOperand* context() { return inputs_[1]; }
2184 LOperand* new_map_temp() { return temps_[0]; } 2296 LOperand* new_map_temp() { return temps_[0]; }
2185 LOperand* temp() { return temps_[1]; } 2297 LOperand* temp() { return temps_[1]; }
2186 2298
2187 DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind, 2299 DECLARE_CONCRETE_INSTRUCTION(TransitionElementsKind,
2188 "transition-elements-kind") 2300 "transition-elements-kind")
2189 DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind) 2301 DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind)
2190 2302
2191 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2303 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2192 2304
2193 Handle<Map> original_map() { return hydrogen()->original_map().handle(); } 2305 Handle<Map> original_map() { return hydrogen()->original_map().handle(); }
(...skipping 14 matching lines...) Expand all
2208 } 2320 }
2209 2321
2210 LOperand* object() { return inputs_[0]; } 2322 LOperand* object() { return inputs_[0]; }
2211 LOperand* temp() { return temps_[0]; } 2323 LOperand* temp() { return temps_[0]; }
2212 2324
2213 DECLARE_CONCRETE_INSTRUCTION(TrapAllocationMemento, 2325 DECLARE_CONCRETE_INSTRUCTION(TrapAllocationMemento,
2214 "trap-allocation-memento") 2326 "trap-allocation-memento")
2215 }; 2327 };
2216 2328
2217 2329
2218 class LStringAdd V8_FINAL : public LTemplateInstruction<1, 2, 0> { 2330 class LStringAdd V8_FINAL : public LTemplateInstruction<1, 3, 0> {
2219 public: 2331 public:
2220 LStringAdd(LOperand* left, LOperand* right) { 2332 LStringAdd(LOperand* context, LOperand* left, LOperand* right) {
2221 inputs_[0] = left; 2333 inputs_[0] = context;
2222 inputs_[1] = right; 2334 inputs_[1] = left;
2335 inputs_[2] = right;
2223 } 2336 }
2224 2337
2225 LOperand* left() { return inputs_[0]; } 2338 LOperand* context() { return inputs_[0]; }
2226 LOperand* right() { return inputs_[1]; } 2339 LOperand* left() { return inputs_[1]; }
2340 LOperand* right() { return inputs_[2]; }
2227 2341
2228 DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add") 2342 DECLARE_CONCRETE_INSTRUCTION(StringAdd, "string-add")
2229 DECLARE_HYDROGEN_ACCESSOR(StringAdd) 2343 DECLARE_HYDROGEN_ACCESSOR(StringAdd)
2230 }; 2344 };
2231 2345
2232 2346
2233 class LStringCharCodeAt V8_FINAL : public LTemplateInstruction<1, 2, 0> { 2347 class LStringCharCodeAt V8_FINAL : public LTemplateInstruction<1, 3, 0> {
2234 public: 2348 public:
2235 LStringCharCodeAt(LOperand* string, LOperand* index) { 2349 LStringCharCodeAt(LOperand* context, LOperand* string, LOperand* index) {
2236 inputs_[0] = string; 2350 inputs_[0] = context;
2237 inputs_[1] = index; 2351 inputs_[1] = string;
2352 inputs_[2] = index;
2238 } 2353 }
2239 2354
2240 LOperand* string() { return inputs_[0]; } 2355 LOperand* context() { return inputs_[0]; }
2241 LOperand* index() { return inputs_[1]; } 2356 LOperand* string() { return inputs_[1]; }
2357 LOperand* index() { return inputs_[2]; }
2242 2358
2243 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at") 2359 DECLARE_CONCRETE_INSTRUCTION(StringCharCodeAt, "string-char-code-at")
2244 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt) 2360 DECLARE_HYDROGEN_ACCESSOR(StringCharCodeAt)
2245 }; 2361 };
2246 2362
2247 2363
2248 class LStringCharFromCode V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2364 class LStringCharFromCode V8_FINAL : public LTemplateInstruction<1, 2, 0> {
2249 public: 2365 public:
2250 explicit LStringCharFromCode(LOperand* char_code) { 2366 explicit LStringCharFromCode(LOperand* context, LOperand* char_code) {
2251 inputs_[0] = char_code; 2367 inputs_[0] = context;
2368 inputs_[1] = char_code;
2252 } 2369 }
2253 2370
2254 LOperand* char_code() { return inputs_[0]; } 2371 LOperand* context() { return inputs_[0]; }
2372 LOperand* char_code() { return inputs_[1]; }
2255 2373
2256 DECLARE_CONCRETE_INSTRUCTION(StringCharFromCode, "string-char-from-code") 2374 DECLARE_CONCRETE_INSTRUCTION(StringCharFromCode, "string-char-from-code")
2257 DECLARE_HYDROGEN_ACCESSOR(StringCharFromCode) 2375 DECLARE_HYDROGEN_ACCESSOR(StringCharFromCode)
2258 }; 2376 };
2259 2377
2260 2378
2261 class LCheckValue V8_FINAL : public LTemplateInstruction<0, 1, 0> { 2379 class LCheckValue V8_FINAL : public LTemplateInstruction<0, 1, 0> {
2262 public: 2380 public:
2263 explicit LCheckValue(LOperand* value) { 2381 explicit LCheckValue(LOperand* value) {
2264 inputs_[0] = value; 2382 inputs_[0] = value;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
2354 inputs_[0] = value; 2472 inputs_[0] = value;
2355 } 2473 }
2356 2474
2357 LOperand* value() { return inputs_[0]; } 2475 LOperand* value() { return inputs_[0]; }
2358 2476
2359 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi") 2477 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi")
2360 DECLARE_HYDROGEN_ACCESSOR(CheckHeapObject) 2478 DECLARE_HYDROGEN_ACCESSOR(CheckHeapObject)
2361 }; 2479 };
2362 2480
2363 2481
2364 class LAllocate V8_FINAL : public LTemplateInstruction<1, 1, 1> { 2482 class LAllocate V8_FINAL : public LTemplateInstruction<1, 2, 1> {
2365 public: 2483 public:
2366 LAllocate(LOperand* size, LOperand* temp) { 2484 LAllocate(LOperand* context, LOperand* size, LOperand* temp) {
2367 inputs_[0] = size; 2485 inputs_[0] = context;
2486 inputs_[1] = size;
2368 temps_[0] = temp; 2487 temps_[0] = temp;
2369 } 2488 }
2370 2489
2371 LOperand* size() { return inputs_[0]; } 2490 LOperand* context() { return inputs_[0]; }
2491 LOperand* size() { return inputs_[1]; }
2372 LOperand* temp() { return temps_[0]; } 2492 LOperand* temp() { return temps_[0]; }
2373 2493
2374 DECLARE_CONCRETE_INSTRUCTION(Allocate, "allocate") 2494 DECLARE_CONCRETE_INSTRUCTION(Allocate, "allocate")
2375 DECLARE_HYDROGEN_ACCESSOR(Allocate) 2495 DECLARE_HYDROGEN_ACCESSOR(Allocate)
2376 }; 2496 };
2377 2497
2378 2498
2379 class LRegExpLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> { 2499 class LRegExpLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2380 public: 2500 public:
2501 explicit LRegExpLiteral(LOperand* context) {
2502 inputs_[0] = context;
2503 }
2504
2505 LOperand* context() { return inputs_[0]; }
2506
2381 DECLARE_CONCRETE_INSTRUCTION(RegExpLiteral, "regexp-literal") 2507 DECLARE_CONCRETE_INSTRUCTION(RegExpLiteral, "regexp-literal")
2382 DECLARE_HYDROGEN_ACCESSOR(RegExpLiteral) 2508 DECLARE_HYDROGEN_ACCESSOR(RegExpLiteral)
2383 }; 2509 };
2384 2510
2385 2511
2386 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> { 2512 class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2387 public: 2513 public:
2514 explicit LFunctionLiteral(LOperand* context) {
2515 inputs_[0] = context;
2516 }
2517
2518 LOperand* context() { return inputs_[0]; }
2519
2388 DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal") 2520 DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal")
2389 DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral) 2521 DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral)
2390 }; 2522 };
2391 2523
2392 2524
2393 class LToFastProperties V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2525 class LToFastProperties V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2394 public: 2526 public:
2395 explicit LToFastProperties(LOperand* value) { 2527 explicit LToFastProperties(LOperand* value) {
2396 inputs_[0] = value; 2528 inputs_[0] = value;
2397 } 2529 }
2398 2530
2399 LOperand* value() { return inputs_[0]; } 2531 LOperand* value() { return inputs_[0]; }
2400 2532
2401 DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to-fast-properties") 2533 DECLARE_CONCRETE_INSTRUCTION(ToFastProperties, "to-fast-properties")
2402 DECLARE_HYDROGEN_ACCESSOR(ToFastProperties) 2534 DECLARE_HYDROGEN_ACCESSOR(ToFastProperties)
2403 }; 2535 };
2404 2536
2405 2537
2406 class LTypeof V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2538 class LTypeof V8_FINAL : public LTemplateInstruction<1, 2, 0> {
2407 public: 2539 public:
2408 explicit LTypeof(LOperand* value) { 2540 LTypeof(LOperand* context, LOperand* value) {
2409 inputs_[0] = value; 2541 inputs_[0] = context;
2542 inputs_[1] = value;
2410 } 2543 }
2411 2544
2412 LOperand* value() { return inputs_[0]; } 2545 LOperand* context() { return inputs_[0]; }
2546 LOperand* value() { return inputs_[1]; }
2413 2547
2414 DECLARE_CONCRETE_INSTRUCTION(Typeof, "typeof") 2548 DECLARE_CONCRETE_INSTRUCTION(Typeof, "typeof")
2415 }; 2549 };
2416 2550
2417 2551
2418 class LTypeofIsAndBranch V8_FINAL : public LControlInstruction<1, 0> { 2552 class LTypeofIsAndBranch V8_FINAL : public LControlInstruction<1, 0> {
2419 public: 2553 public:
2420 explicit LTypeofIsAndBranch(LOperand* value) { 2554 explicit LTypeofIsAndBranch(LOperand* value) {
2421 inputs_[0] = value; 2555 inputs_[0] = value;
2422 } 2556 }
(...skipping 27 matching lines...) Expand all
2450 public: 2584 public:
2451 LOsrEntry() {} 2585 LOsrEntry() {}
2452 2586
2453 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE { 2587 virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
2454 return false; 2588 return false;
2455 } 2589 }
2456 DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") 2590 DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry")
2457 }; 2591 };
2458 2592
2459 2593
2460 class LStackCheck V8_FINAL : public LTemplateInstruction<0, 0, 0> { 2594 class LStackCheck V8_FINAL : public LTemplateInstruction<0, 1, 0> {
2461 public: 2595 public:
2596 explicit LStackCheck(LOperand* context) {
2597 inputs_[0] = context;
2598 }
2599
2600 LOperand* context() { return inputs_[0]; }
2601
2462 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check") 2602 DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check")
2463 DECLARE_HYDROGEN_ACCESSOR(StackCheck) 2603 DECLARE_HYDROGEN_ACCESSOR(StackCheck)
2464 2604
2465 Label* done_label() { return &done_label_; } 2605 Label* done_label() { return &done_label_; }
2466 2606
2467 private: 2607 private:
2468 Label done_label_; 2608 Label done_label_;
2469 }; 2609 };
2470 2610
2471 2611
2472 class LForInPrepareMap V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2612 class LForInPrepareMap V8_FINAL : public LTemplateInstruction<1, 2, 0> {
2473 public: 2613 public:
2474 explicit LForInPrepareMap(LOperand* object) { 2614 LForInPrepareMap(LOperand* context, LOperand* object) {
2475 inputs_[0] = object; 2615 inputs_[0] = context;
2616 inputs_[1] = object;
2476 } 2617 }
2477 2618
2478 LOperand* object() { return inputs_[0]; } 2619 LOperand* context() { return inputs_[0]; }
2620 LOperand* object() { return inputs_[1]; }
2479 2621
2480 DECLARE_CONCRETE_INSTRUCTION(ForInPrepareMap, "for-in-prepare-map") 2622 DECLARE_CONCRETE_INSTRUCTION(ForInPrepareMap, "for-in-prepare-map")
2481 }; 2623 };
2482 2624
2483 2625
2484 class LForInCacheArray V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2626 class LForInCacheArray V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2485 public: 2627 public:
2486 explicit LForInCacheArray(LOperand* map) { 2628 explicit LForInCacheArray(LOperand* map) {
2487 inputs_[0] = map; 2629 inputs_[0] = map;
2488 } 2630 }
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2706 2848
2707 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2849 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2708 }; 2850 };
2709 2851
2710 #undef DECLARE_HYDROGEN_ACCESSOR 2852 #undef DECLARE_HYDROGEN_ACCESSOR
2711 #undef DECLARE_CONCRETE_INSTRUCTION 2853 #undef DECLARE_CONCRETE_INSTRUCTION
2712 2854
2713 } } // namespace v8::int 2855 } } // namespace v8::int
2714 2856
2715 #endif // V8_X64_LITHIUM_X64_H_ 2857 #endif // V8_X64_LITHIUM_X64_H_
OLDNEW
« no previous file with comments | « src/x64/lithium-gap-resolver-x64.cc ('k') | src/x64/lithium-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698