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

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

Issue 6673082: Refactor lithium CheckSmi instruction into two separate instructions CheckSmi... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 years, 9 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 | « no previous file | src/arm/lithium-arm.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 V(CallFunction) \ 62 V(CallFunction) \
63 V(CallGlobal) \ 63 V(CallGlobal) \
64 V(CallKeyed) \ 64 V(CallKeyed) \
65 V(CallKnownGlobal) \ 65 V(CallKnownGlobal) \
66 V(CallNamed) \ 66 V(CallNamed) \
67 V(CallNew) \ 67 V(CallNew) \
68 V(CallRuntime) \ 68 V(CallRuntime) \
69 V(CallStub) \ 69 V(CallStub) \
70 V(CheckFunction) \ 70 V(CheckFunction) \
71 V(CheckInstanceType) \ 71 V(CheckInstanceType) \
72 V(CheckNonSmi) \
72 V(CheckMap) \ 73 V(CheckMap) \
73 V(CheckPrototypeMaps) \ 74 V(CheckPrototypeMaps) \
74 V(CheckSmi) \ 75 V(CheckSmi) \
75 V(ClassOfTest) \ 76 V(ClassOfTest) \
76 V(ClassOfTestAndBranch) \ 77 V(ClassOfTestAndBranch) \
77 V(CmpID) \ 78 V(CmpID) \
78 V(CmpIDAndBranch) \ 79 V(CmpIDAndBranch) \
79 V(CmpJSObjectEq) \ 80 V(CmpJSObjectEq) \
80 V(CmpJSObjectEqAndBranch) \ 81 V(CmpJSObjectEqAndBranch) \
81 V(CmpMapAndBranch) \ 82 V(CmpMapAndBranch) \
(...skipping 1629 matching lines...) Expand 10 before | Expand all | Expand 10 after
1711 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps") 1712 DECLARE_CONCRETE_INSTRUCTION(CheckPrototypeMaps, "check-prototype-maps")
1712 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps) 1713 DECLARE_HYDROGEN_ACCESSOR(CheckPrototypeMaps)
1713 1714
1714 Handle<JSObject> prototype() const { return hydrogen()->prototype(); } 1715 Handle<JSObject> prototype() const { return hydrogen()->prototype(); }
1715 Handle<JSObject> holder() const { return hydrogen()->holder(); } 1716 Handle<JSObject> holder() const { return hydrogen()->holder(); }
1716 }; 1717 };
1717 1718
1718 1719
1719 class LCheckSmi: public LTemplateInstruction<0, 1, 0> { 1720 class LCheckSmi: public LTemplateInstruction<0, 1, 0> {
1720 public: 1721 public:
1721 LCheckSmi(LOperand* value, Condition condition) 1722 explicit LCheckSmi(LOperand* value) {
1722 : condition_(condition) {
1723 inputs_[0] = value; 1723 inputs_[0] = value;
1724 } 1724 }
1725 1725
1726 Condition condition() const { return condition_; } 1726 DECLARE_CONCRETE_INSTRUCTION(CheckSmi, "check-smi")
1727
1728 virtual void CompileToNative(LCodeGen* generator);
1729 virtual const char* Mnemonic() const {
1730 return (condition_ == eq) ? "check-non-smi" : "check-smi";
1731 }
1732
1733 private:
1734 Condition condition_;
1735 }; 1727 };
1736 1728
1737 1729
1730 class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
1731 public:
1732 explicit LCheckNonSmi(LOperand* value) {
1733 inputs_[0] = value;
1734 }
1735
1736 DECLARE_CONCRETE_INSTRUCTION(CheckNonSmi, "check-non-smi")
1737 };
1738
1739
1738 class LArrayLiteral: public LTemplateInstruction<1, 0, 0> { 1740 class LArrayLiteral: public LTemplateInstruction<1, 0, 0> {
1739 public: 1741 public:
1740 DECLARE_CONCRETE_INSTRUCTION(ArrayLiteral, "array-literal") 1742 DECLARE_CONCRETE_INSTRUCTION(ArrayLiteral, "array-literal")
1741 DECLARE_HYDROGEN_ACCESSOR(ArrayLiteral) 1743 DECLARE_HYDROGEN_ACCESSOR(ArrayLiteral)
1742 }; 1744 };
1743 1745
1744 1746
1745 class LObjectLiteral: public LTemplateInstruction<1, 0, 0> { 1747 class LObjectLiteral: public LTemplateInstruction<1, 0, 0> {
1746 public: 1748 public:
1747 DECLARE_CONCRETE_INSTRUCTION(ObjectLiteral, "object-literal") 1749 DECLARE_CONCRETE_INSTRUCTION(ObjectLiteral, "object-literal")
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
2082 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2084 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2083 }; 2085 };
2084 2086
2085 #undef DECLARE_HYDROGEN_ACCESSOR 2087 #undef DECLARE_HYDROGEN_ACCESSOR
2086 #undef DECLARE_INSTRUCTION 2088 #undef DECLARE_INSTRUCTION
2087 #undef DECLARE_CONCRETE_INSTRUCTION 2089 #undef DECLARE_CONCRETE_INSTRUCTION
2088 2090
2089 } } // namespace v8::internal 2091 } } // namespace v8::internal
2090 2092
2091 #endif // V8_ARM_LITHIUM_ARM_H_ 2093 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698