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

Side by Side Diff: src/compiler/machine-operator.cc

Issue 747283005: [turbofan]: Port lea changes to ia32 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Latest Created 6 years 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
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 #include "src/compiler/machine-operator.h" 5 #include "src/compiler/machine-operator.h"
6 6
7 #include "src/base/lazy-instance.h" 7 #include "src/base/lazy-instance.h"
8 #include "src/compiler/opcodes.h" 8 #include "src/compiler/opcodes.h"
9 #include "src/compiler/operator.h" 9 #include "src/compiler/operator.h"
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 0) {} \ 167 0) {} \
168 }; \ 168 }; \
169 Name##Operator k##Name; 169 Name##Operator k##Name;
170 PURE_OP_LIST(PURE) 170 PURE_OP_LIST(PURE)
171 #undef PURE 171 #undef PURE
172 172
173 #define LOAD(Type) \ 173 #define LOAD(Type) \
174 struct Load##Type##Operator FINAL : public Operator1<LoadRepresentation> { \ 174 struct Load##Type##Operator FINAL : public Operator1<LoadRepresentation> { \
175 Load##Type##Operator() \ 175 Load##Type##Operator() \
176 : Operator1<LoadRepresentation>( \ 176 : Operator1<LoadRepresentation>( \
177 IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite, \ 177 IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite | \
178 Operator::kCommutative, \
Benedikt Meurer 2014/12/11 10:16:21 Err, what's that?
178 "Load", 2, 1, 1, 1, 1, 0, k##Type) {} \ 179 "Load", 2, 1, 1, 1, 1, 0, k##Type) {} \
179 }; \ 180 }; \
180 struct CheckedLoad##Type##Operator FINAL \ 181 struct CheckedLoad##Type##Operator FINAL \
181 : public Operator1<CheckedLoadRepresentation> { \ 182 : public Operator1<CheckedLoadRepresentation> { \
182 CheckedLoad##Type##Operator() \ 183 CheckedLoad##Type##Operator() \
183 : Operator1<CheckedLoadRepresentation>( \ 184 : Operator1<CheckedLoadRepresentation>( \
184 IrOpcode::kCheckedLoad, Operator::kNoThrow | Operator::kNoWrite, \ 185 IrOpcode::kCheckedLoad, Operator::kNoThrow | Operator::kNoWrite, \
185 "CheckedLoad", 3, 1, 1, 1, 1, 0, k##Type) {} \ 186 "CheckedLoad", 3, 1, 1, 1, 1, 0, k##Type) {} \
186 }; \ 187 }; \
187 Load##Type##Operator kLoad##Type; \ 188 Load##Type##Operator kLoad##Type; \
188 CheckedLoad##Type##Operator kCheckedLoad##Type; 189 CheckedLoad##Type##Operator kCheckedLoad##Type;
189 MACHINE_TYPE_LIST(LOAD) 190 MACHINE_TYPE_LIST(LOAD)
190 #undef LOAD 191 #undef LOAD
191 192
192 #define STORE(Type) \ 193 #define STORE(Type) \
193 struct Store##Type##Operator : public Operator1<StoreRepresentation> { \ 194 struct Store##Type##Operator : public Operator1<StoreRepresentation> { \
194 explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind) \ 195 explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind) \
195 : Operator1<StoreRepresentation>( \ 196 : Operator1<StoreRepresentation>( \
196 IrOpcode::kStore, Operator::kNoRead | Operator::kNoThrow, \ 197 IrOpcode::kStore, \
198 Operator::kNoRead | Operator::kNoThrow | Operator::kCommutative, \
Benedikt Meurer 2014/12/11 10:16:21 Err, what's that?
Benedikt Meurer 2014/12/11 10:16:21 Err, what's that?
197 "Store", 3, 1, 1, 0, 1, 0, \ 199 "Store", 3, 1, 1, 0, 1, 0, \
198 StoreRepresentation(k##Type, write_barrier_kind)) {} \ 200 StoreRepresentation(k##Type, write_barrier_kind)) {} \
199 }; \ 201 }; \
200 struct Store##Type##NoWriteBarrier##Operator FINAL \ 202 struct Store##Type##NoWriteBarrier##Operator FINAL \
201 : public Store##Type##Operator { \ 203 : public Store##Type##Operator { \
202 Store##Type##NoWriteBarrier##Operator() \ 204 Store##Type##NoWriteBarrier##Operator() \
203 : Store##Type##Operator(kNoWriteBarrier) {} \ 205 : Store##Type##Operator(kNoWriteBarrier) {} \
204 }; \ 206 }; \
205 struct Store##Type##FullWriteBarrier##Operator FINAL \ 207 struct Store##Type##FullWriteBarrier##Operator FINAL \
206 : public Store##Type##Operator { \ 208 : public Store##Type##Operator { \
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 } 314 }
313 // Uncached. 315 // Uncached.
314 return new (zone_) Operator1<CheckedStoreRepresentation>( 316 return new (zone_) Operator1<CheckedStoreRepresentation>(
315 IrOpcode::kCheckedStore, Operator::kNoRead | Operator::kNoThrow, 317 IrOpcode::kCheckedStore, Operator::kNoRead | Operator::kNoThrow,
316 "CheckedStore", 4, 1, 1, 0, 1, 0, rep); 318 "CheckedStore", 4, 1, 1, 0, 1, 0, rep);
317 } 319 }
318 320
319 } // namespace compiler 321 } // namespace compiler
320 } // namespace internal 322 } // namespace internal
321 } // namespace v8 323 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/ia32/instruction-selector-ia32.cc ('k') | src/compiler/x64/instruction-selector-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698