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/ppc/lithium-ppc.h

Issue 1212613003: PPC: VectorICs: Lithium support for vector-based stores. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | src/ppc/lithium-ppc.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_PPC_LITHIUM_PPC_H_ 5 #ifndef V8_PPC_LITHIUM_PPC_H_
6 #define V8_PPC_LITHIUM_PPC_H_ 6 #define V8_PPC_LITHIUM_PPC_H_
7 7
8 #include "src/hydrogen.h" 8 #include "src/hydrogen.h"
9 #include "src/lithium.h" 9 #include "src/lithium.h"
10 #include "src/lithium-allocator.h" 10 #include "src/lithium-allocator.h"
(...skipping 2065 matching lines...) Expand 10 before | Expand all | Expand 10 after
2076 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) 2076 DECLARE_HYDROGEN_ACCESSOR(StoreNamedField)
2077 2077
2078 void PrintDataTo(StringStream* stream) override; 2078 void PrintDataTo(StringStream* stream) override;
2079 2079
2080 Representation representation() const { 2080 Representation representation() const {
2081 return hydrogen()->field_representation(); 2081 return hydrogen()->field_representation();
2082 } 2082 }
2083 }; 2083 };
2084 2084
2085 2085
2086 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 0> { 2086 class LStoreNamedGeneric final : public LTemplateInstruction<0, 3, 2> {
2087 public: 2087 public:
2088 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value) { 2088 LStoreNamedGeneric(LOperand* context, LOperand* object, LOperand* value,
2089 LOperand* slot, LOperand* vector) {
2089 inputs_[0] = context; 2090 inputs_[0] = context;
2090 inputs_[1] = object; 2091 inputs_[1] = object;
2091 inputs_[2] = value; 2092 inputs_[2] = value;
2093 temps_[0] = slot;
2094 temps_[1] = vector;
2092 } 2095 }
2093 2096
2094 LOperand* context() { return inputs_[0]; } 2097 LOperand* context() { return inputs_[0]; }
2095 LOperand* object() { return inputs_[1]; } 2098 LOperand* object() { return inputs_[1]; }
2096 LOperand* value() { return inputs_[2]; } 2099 LOperand* value() { return inputs_[2]; }
2100 LOperand* temp_slot() { return temps_[0]; }
2101 LOperand* temp_vector() { return temps_[1]; }
2097 2102
2098 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") 2103 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic")
2099 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) 2104 DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric)
2100 2105
2101 void PrintDataTo(StringStream* stream) override; 2106 void PrintDataTo(StringStream* stream) override;
2102 2107
2103 Handle<Object> name() const { return hydrogen()->name(); } 2108 Handle<Object> name() const { return hydrogen()->name(); }
2104 LanguageMode language_mode() { return hydrogen()->language_mode(); } 2109 LanguageMode language_mode() { return hydrogen()->language_mode(); }
2105 }; 2110 };
2106 2111
(...skipping 26 matching lines...) Expand all
2133 if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() || 2138 if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() ||
2134 hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) { 2139 hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) {
2135 return false; 2140 return false;
2136 } 2141 }
2137 return hydrogen()->NeedsCanonicalization(); 2142 return hydrogen()->NeedsCanonicalization();
2138 } 2143 }
2139 uint32_t base_offset() const { return hydrogen()->base_offset(); } 2144 uint32_t base_offset() const { return hydrogen()->base_offset(); }
2140 }; 2145 };
2141 2146
2142 2147
2143 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 0> { 2148 class LStoreKeyedGeneric final : public LTemplateInstruction<0, 4, 2> {
2144 public: 2149 public:
2145 LStoreKeyedGeneric(LOperand* context, LOperand* obj, LOperand* key, 2150 LStoreKeyedGeneric(LOperand* context, LOperand* object, LOperand* key,
2146 LOperand* value) { 2151 LOperand* value, LOperand* slot, LOperand* vector) {
2147 inputs_[0] = context; 2152 inputs_[0] = context;
2148 inputs_[1] = obj; 2153 inputs_[1] = object;
2149 inputs_[2] = key; 2154 inputs_[2] = key;
2150 inputs_[3] = value; 2155 inputs_[3] = value;
2156 temps_[0] = slot;
2157 temps_[1] = vector;
2151 } 2158 }
2152 2159
2153 LOperand* context() { return inputs_[0]; } 2160 LOperand* context() { return inputs_[0]; }
2154 LOperand* object() { return inputs_[1]; } 2161 LOperand* object() { return inputs_[1]; }
2155 LOperand* key() { return inputs_[2]; } 2162 LOperand* key() { return inputs_[2]; }
2156 LOperand* value() { return inputs_[3]; } 2163 LOperand* value() { return inputs_[3]; }
2164 LOperand* temp_slot() { return temps_[0]; }
2165 LOperand* temp_vector() { return temps_[1]; }
2157 2166
2158 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") 2167 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
2159 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) 2168 DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric)
2160 2169
2161 void PrintDataTo(StringStream* stream) override; 2170 void PrintDataTo(StringStream* stream) override;
2162 2171
2163 LanguageMode language_mode() { return hydrogen()->language_mode(); } 2172 LanguageMode language_mode() { return hydrogen()->language_mode(); }
2164 }; 2173 };
2165 2174
2166 2175
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
2747 2756
2748 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2757 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2749 }; 2758 };
2750 2759
2751 #undef DECLARE_HYDROGEN_ACCESSOR 2760 #undef DECLARE_HYDROGEN_ACCESSOR
2752 #undef DECLARE_CONCRETE_INSTRUCTION 2761 #undef DECLARE_CONCRETE_INSTRUCTION
2753 } 2762 }
2754 } // namespace v8::internal 2763 } // namespace v8::internal
2755 2764
2756 #endif // V8_PPC_LITHIUM_PPC_H_ 2765 #endif // V8_PPC_LITHIUM_PPC_H_
OLDNEW
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | src/ppc/lithium-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698