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

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

Issue 6201004: ARM: Implement ClassOf in the lithium arm backend. (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
« 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 830 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 int false_block_id() const { return false_block_id_; } 841 int false_block_id() const { return false_block_id_; }
842 842
843 private: 843 private:
844 int true_block_id_; 844 int true_block_id_;
845 int false_block_id_; 845 int false_block_id_;
846 }; 846 };
847 847
848 848
849 class LClassOfTest: public LUnaryOperation { 849 class LClassOfTest: public LUnaryOperation {
850 public: 850 public:
851 LClassOfTest(LOperand* value, LOperand* temp) 851 explicit LClassOfTest(LOperand* value) : LUnaryOperation(value) {}
852 : LUnaryOperation(value), temporary_(temp) {}
853 852
854 DECLARE_CONCRETE_INSTRUCTION(ClassOfTest, "class-of-test") 853 DECLARE_CONCRETE_INSTRUCTION(ClassOfTest, "class-of-test")
855 DECLARE_HYDROGEN_ACCESSOR(ClassOfTest) 854 DECLARE_HYDROGEN_ACCESSOR(ClassOfTest)
856 855
857 virtual void PrintDataTo(StringStream* stream) const; 856 virtual void PrintDataTo(StringStream* stream) const;
858
859 LOperand* temporary() { return temporary_; }
860
861 private:
862 LOperand *temporary_;
863 }; 857 };
864 858
865 859
866 class LClassOfTestAndBranch: public LClassOfTest { 860 class LClassOfTestAndBranch: public LClassOfTest {
867 public: 861 public:
868 LClassOfTestAndBranch(LOperand* value, 862 LClassOfTestAndBranch(LOperand* value,
869 LOperand* temporary, 863 LOperand* temporary,
870 LOperand* temporary2,
871 int true_block_id, 864 int true_block_id,
872 int false_block_id) 865 int false_block_id)
873 : LClassOfTest(value, temporary), 866 : LClassOfTest(value),
874 temporary2_(temporary2), 867 temporary_(temporary),
875 true_block_id_(true_block_id), 868 true_block_id_(true_block_id),
876 false_block_id_(false_block_id) { } 869 false_block_id_(false_block_id) { }
877 870
878 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch, 871 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch,
879 "class-of-test-and-branch") 872 "class-of-test-and-branch")
880 virtual void PrintDataTo(StringStream* stream) const; 873 virtual void PrintDataTo(StringStream* stream) const;
881 virtual bool IsControl() const { return true; } 874 virtual bool IsControl() const { return true; }
882 875
883 int true_block_id() const { return true_block_id_; } 876 int true_block_id() const { return true_block_id_; }
884 int false_block_id() const { return false_block_id_; } 877 int false_block_id() const { return false_block_id_; }
885 LOperand* temporary2() { return temporary2_; } 878 LOperand* temporary() { return temporary_; }
886 879
887 private: 880 private:
888 LOperand* temporary2_; 881 LOperand* temporary_;
889 int true_block_id_; 882 int true_block_id_;
890 int false_block_id_; 883 int false_block_id_;
891 }; 884 };
892 885
893 886
894 class LCmpT: public LBinaryOperation { 887 class LCmpT: public LBinaryOperation {
895 public: 888 public:
896 LCmpT(LOperand* left, LOperand* right) : LBinaryOperation(left, right) {} 889 LCmpT(LOperand* left, LOperand* right) : LBinaryOperation(left, right) {}
897 890
898 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t") 891 DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
(...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2046 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2054 }; 2047 };
2055 2048
2056 #undef DECLARE_HYDROGEN_ACCESSOR 2049 #undef DECLARE_HYDROGEN_ACCESSOR
2057 #undef DECLARE_INSTRUCTION 2050 #undef DECLARE_INSTRUCTION
2058 #undef DECLARE_CONCRETE_INSTRUCTION 2051 #undef DECLARE_CONCRETE_INSTRUCTION
2059 2052
2060 } } // namespace v8::internal 2053 } } // namespace v8::internal
2061 2054
2062 #endif // V8_ARM_LITHIUM_ARM_H_ 2055 #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