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

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

Issue 5976014: Set a fixed scratch register for ARM code generation... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 11 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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 719
720 private: 720 private:
721 bool is_strict_; 721 bool is_strict_;
722 }; 722 };
723 723
724 724
725 class LIsNullAndBranch: public LIsNull { 725 class LIsNullAndBranch: public LIsNull {
726 public: 726 public:
727 LIsNullAndBranch(LOperand* value, 727 LIsNullAndBranch(LOperand* value,
728 bool is_strict, 728 bool is_strict,
729 LOperand* temp,
730 int true_block_id, 729 int true_block_id,
731 int false_block_id) 730 int false_block_id)
732 : LIsNull(value, is_strict), 731 : LIsNull(value, is_strict),
733 temp_(temp),
734 true_block_id_(true_block_id), 732 true_block_id_(true_block_id),
735 false_block_id_(false_block_id) { } 733 false_block_id_(false_block_id) { }
736 734
737 DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch") 735 DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch")
738 virtual void PrintDataTo(StringStream* stream) const; 736 virtual void PrintDataTo(StringStream* stream) const;
739 virtual bool IsControl() const { return true; } 737 virtual bool IsControl() const { return true; }
740 738
741 int true_block_id() const { return true_block_id_; } 739 int true_block_id() const { return true_block_id_; }
742 int false_block_id() const { return false_block_id_; } 740 int false_block_id() const { return false_block_id_; }
743 741
744 LOperand* temp() const { return temp_; }
745
746 private: 742 private:
747 LOperand* temp_;
748 int true_block_id_; 743 int true_block_id_;
749 int false_block_id_; 744 int false_block_id_;
750 }; 745 };
751 746
752 747
753 class LIsObject: public LUnaryOperation { 748 class LIsObject: public LUnaryOperation {
754 public: 749 public:
755 LIsObject(LOperand* value, LOperand* temp) 750 LIsObject(LOperand* value, LOperand* temp)
756 : LUnaryOperation(value), temp_(temp) {} 751 : LUnaryOperation(value), temp_(temp) {}
757 752
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType) 827 DECLARE_HYDROGEN_ACCESSOR(HasInstanceType)
833 828
834 InstanceType TestType(); // The type to test against when generating code. 829 InstanceType TestType(); // The type to test against when generating code.
835 Condition BranchCondition(); // The branch condition for 'true'. 830 Condition BranchCondition(); // The branch condition for 'true'.
836 }; 831 };
837 832
838 833
839 class LHasInstanceTypeAndBranch: public LHasInstanceType { 834 class LHasInstanceTypeAndBranch: public LHasInstanceType {
840 public: 835 public:
841 LHasInstanceTypeAndBranch(LOperand* value, 836 LHasInstanceTypeAndBranch(LOperand* value,
842 LOperand* temporary,
843 int true_block_id, 837 int true_block_id,
844 int false_block_id) 838 int false_block_id)
845 : LHasInstanceType(value), 839 : LHasInstanceType(value),
846 temp_(temporary),
847 true_block_id_(true_block_id), 840 true_block_id_(true_block_id),
848 false_block_id_(false_block_id) { } 841 false_block_id_(false_block_id) { }
849 842
850 DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch, 843 DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch,
851 "has-instance-type-and-branch") 844 "has-instance-type-and-branch")
852 virtual void PrintDataTo(StringStream* stream) const; 845 virtual void PrintDataTo(StringStream* stream) const;
853 virtual bool IsControl() const { return true; } 846 virtual bool IsControl() const { return true; }
854 847
855 int true_block_id() const { return true_block_id_; } 848 int true_block_id() const { return true_block_id_; }
856 int false_block_id() const { return false_block_id_; } 849 int false_block_id() const { return false_block_id_; }
857 850
858 LOperand* temp() { return temp_; }
859
860 private: 851 private:
861 LOperand* temp_;
862 int true_block_id_; 852 int true_block_id_;
863 int false_block_id_; 853 int false_block_id_;
864 }; 854 };
865 855
866 856
867 class LHasCachedArrayIndex: public LUnaryOperation { 857 class LHasCachedArrayIndex: public LUnaryOperation {
868 public: 858 public:
869 explicit LHasCachedArrayIndex(LOperand* value) : LUnaryOperation(value) {} 859 explicit LHasCachedArrayIndex(LOperand* value) : LUnaryOperation(value) {}
870 860
871 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index") 861 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index")
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic") 1248 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric, "load-named-generic")
1259 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric) 1249 DECLARE_HYDROGEN_ACCESSOR(LoadNamedGeneric)
1260 1250
1261 LOperand* object() const { return input(); } 1251 LOperand* object() const { return input(); }
1262 Handle<Object> name() const { return hydrogen()->name(); } 1252 Handle<Object> name() const { return hydrogen()->name(); }
1263 }; 1253 };
1264 1254
1265 1255
1266 class LLoadFunctionPrototype: public LUnaryOperation { 1256 class LLoadFunctionPrototype: public LUnaryOperation {
1267 public: 1257 public:
1268 LLoadFunctionPrototype(LOperand* function, LOperand* temporary) 1258 LLoadFunctionPrototype(LOperand* function) : LUnaryOperation(function) { }
1269 : LUnaryOperation(function), temporary_(temporary) { }
1270 1259
1271 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype") 1260 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype, "load-function-prototype")
1272 DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype) 1261 DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype)
1273 1262
1274 LOperand* function() const { return input(); } 1263 LOperand* function() const { return input(); }
1275 LOperand* temporary() const { return temporary_; }
1276
1277 private:
1278 LOperand* temporary_;
1279 }; 1264 };
1280 1265
1281 1266
1282 class LLoadElements: public LUnaryOperation { 1267 class LLoadElements: public LUnaryOperation {
1283 public: 1268 public:
1284 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { } 1269 explicit LLoadElements(LOperand* obj) : LUnaryOperation(obj) { }
1285 1270
1286 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements") 1271 DECLARE_CONCRETE_INSTRUCTION(LoadElements, "load-elements")
1287 }; 1272 };
1288 1273
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
2129 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2114 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2130 }; 2115 };
2131 2116
2132 #undef DECLARE_HYDROGEN_ACCESSOR 2117 #undef DECLARE_HYDROGEN_ACCESSOR
2133 #undef DECLARE_INSTRUCTION 2118 #undef DECLARE_INSTRUCTION
2134 #undef DECLARE_CONCRETE_INSTRUCTION 2119 #undef DECLARE_CONCRETE_INSTRUCTION
2135 2120
2136 } } // namespace v8::internal 2121 } } // namespace v8::internal
2137 2122
2138 #endif // V8_ARM_LITHIUM_ARM_H_ 2123 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« src/arm/assembler-arm.h ('K') | « src/arm/assembler-arm.h ('k') | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698