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

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

Issue 16026023: Avoid Unnecessary Smi Checks (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 6 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
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 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 public: 860 public:
861 LIsStringAndBranch(LOperand* value, LOperand* temp) { 861 LIsStringAndBranch(LOperand* value, LOperand* temp) {
862 inputs_[0] = value; 862 inputs_[0] = value;
863 temps_[0] = temp; 863 temps_[0] = temp;
864 } 864 }
865 865
866 LOperand* value() { return inputs_[0]; } 866 LOperand* value() { return inputs_[0]; }
867 LOperand* temp() { return temps_[0]; } 867 LOperand* temp() { return temps_[0]; }
868 868
869 DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch, "is-string-and-branch") 869 DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch, "is-string-and-branch")
870 DECLARE_HYDROGEN_ACCESSOR(IsStringAndBranch)
870 871
871 virtual void PrintDataTo(StringStream* stream); 872 virtual void PrintDataTo(StringStream* stream);
872 }; 873 };
873 874
874 875
875 class LIsSmiAndBranch: public LControlInstruction<1, 0> { 876 class LIsSmiAndBranch: public LControlInstruction<1, 0> {
876 public: 877 public:
877 explicit LIsSmiAndBranch(LOperand* value) { 878 explicit LIsSmiAndBranch(LOperand* value) {
878 inputs_[0] = value; 879 inputs_[0] = value;
879 } 880 }
(...skipping 12 matching lines...) Expand all
892 LIsUndetectableAndBranch(LOperand* value, LOperand* temp) { 893 LIsUndetectableAndBranch(LOperand* value, LOperand* temp) {
893 inputs_[0] = value; 894 inputs_[0] = value;
894 temps_[0] = temp; 895 temps_[0] = temp;
895 } 896 }
896 897
897 LOperand* value() { return inputs_[0]; } 898 LOperand* value() { return inputs_[0]; }
898 LOperand* temp() { return temps_[0]; } 899 LOperand* temp() { return temps_[0]; }
899 900
900 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch, 901 DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch,
901 "is-undetectable-and-branch") 902 "is-undetectable-and-branch")
903 DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch)
902 904
903 virtual void PrintDataTo(StringStream* stream); 905 virtual void PrintDataTo(StringStream* stream);
904 }; 906 };
905 907
906 908
907 class LStringCompareAndBranch: public LControlInstruction<3, 0> { 909 class LStringCompareAndBranch: public LControlInstruction<3, 0> {
908 public: 910 public:
909 LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) { 911 LStringCompareAndBranch(LOperand* context, LOperand* left, LOperand* right) {
910 inputs_[0] = context; 912 inputs_[0] = context;
911 inputs_[1] = left; 913 inputs_[1] = left;
(...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after
2532 LOperand* scratch() { return temps_[0]; } 2534 LOperand* scratch() { return temps_[0]; }
2533 LOperand* scratch2() { return temps_[1]; } 2535 LOperand* scratch2() { return temps_[1]; }
2534 LOperand* scratch3() { return temps_[2]; } 2536 LOperand* scratch3() { return temps_[2]; }
2535 2537
2536 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8NoSSE2, 2538 DECLARE_CONCRETE_INSTRUCTION(ClampTToUint8NoSSE2,
2537 "clamp-t-to-uint8-nosse2") 2539 "clamp-t-to-uint8-nosse2")
2538 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 2540 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2539 }; 2541 };
2540 2542
2541 2543
2542 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> { 2544 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
ulan 2013/06/18 12:45:59 If we rename the hydrogen instruction, why not ren
2543 public: 2545 public:
2544 explicit LCheckNonSmi(LOperand* value) { 2546 explicit LCheckNonSmi(LOperand* value) {
2545 inputs_[0] = value; 2547 inputs_[0] = value;
2546 } 2548 }
2547 2549
2548 LOperand* value() { return inputs_[0]; } 2550 LOperand* value() { return inputs_[0]; }
2549 2551
2550 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi") 2552 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi")
2553 DECLARE_HYDROGEN_ACCESSOR(CheckHeapObject)
2551 }; 2554 };
2552 2555
2553 2556
2554 class LAllocate: public LTemplateInstruction<1, 2, 1> { 2557 class LAllocate: public LTemplateInstruction<1, 2, 1> {
2555 public: 2558 public:
2556 LAllocate(LOperand* context, LOperand* size, LOperand* temp) { 2559 LAllocate(LOperand* context, LOperand* size, LOperand* temp) {
2557 inputs_[0] = context; 2560 inputs_[0] = context;
2558 inputs_[1] = size; 2561 inputs_[1] = size;
2559 temps_[0] = temp; 2562 temps_[0] = temp;
2560 } 2563 }
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
2963 2966
2964 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2967 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2965 }; 2968 };
2966 2969
2967 #undef DECLARE_HYDROGEN_ACCESSOR 2970 #undef DECLARE_HYDROGEN_ACCESSOR
2968 #undef DECLARE_CONCRETE_INSTRUCTION 2971 #undef DECLARE_CONCRETE_INSTRUCTION
2969 2972
2970 } } // namespace v8::internal 2973 } } // namespace v8::internal
2971 2974
2972 #endif // V8_IA32_LITHIUM_IA32_H_ 2975 #endif // V8_IA32_LITHIUM_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698