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

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

Issue 1779713009: Implement optional turbofan UnalignedLoad and UnalignedStore operators (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_COMPILER_MACHINE_OPERATOR_H_ 5 #ifndef V8_COMPILER_MACHINE_OPERATOR_H_
6 #define V8_COMPILER_MACHINE_OPERATOR_H_ 6 #define V8_COMPILER_MACHINE_OPERATOR_H_
7 7
8 #include "src/base/flags.h" 8 #include "src/base/flags.h"
9 #include "src/machine-type.h" 9 #include "src/machine-type.h"
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 bool operator==(StoreRepresentation, StoreRepresentation); 84 bool operator==(StoreRepresentation, StoreRepresentation);
85 bool operator!=(StoreRepresentation, StoreRepresentation); 85 bool operator!=(StoreRepresentation, StoreRepresentation);
86 86
87 size_t hash_value(StoreRepresentation); 87 size_t hash_value(StoreRepresentation);
88 88
89 std::ostream& operator<<(std::ostream&, StoreRepresentation); 89 std::ostream& operator<<(std::ostream&, StoreRepresentation);
90 90
91 StoreRepresentation const& StoreRepresentationOf(Operator const*); 91 StoreRepresentation const& StoreRepresentationOf(Operator const*);
92 92
93 typedef MachineType UnalignedLoadRepresentation;
94
95 UnalignedLoadRepresentation UnalignedLoadRepresentationOf(Operator const*);
96
97 // An UnalignedStore needs a MachineType.
98 typedef MachineRepresentation UnalignedStoreRepresentation;
99
100 UnalignedStoreRepresentation const& UnalignedStoreRepresentationOf(
101 Operator const*);
93 102
94 // A CheckedLoad needs a MachineType. 103 // A CheckedLoad needs a MachineType.
95 typedef MachineType CheckedLoadRepresentation; 104 typedef MachineType CheckedLoadRepresentation;
96 105
97 CheckedLoadRepresentation CheckedLoadRepresentationOf(Operator const*); 106 CheckedLoadRepresentation CheckedLoadRepresentationOf(Operator const*);
98 107
99 108
100 // A CheckedStore needs a MachineType. 109 // A CheckedStore needs a MachineType.
101 typedef MachineRepresentation CheckedStoreRepresentation; 110 typedef MachineRepresentation CheckedStoreRepresentation;
102 111
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 const Operator* Float64ExtractHighWord32(); 317 const Operator* Float64ExtractHighWord32();
309 const Operator* Float64InsertLowWord32(); 318 const Operator* Float64InsertLowWord32();
310 const Operator* Float64InsertHighWord32(); 319 const Operator* Float64InsertHighWord32();
311 320
312 // load [base + index] 321 // load [base + index]
313 const Operator* Load(LoadRepresentation rep); 322 const Operator* Load(LoadRepresentation rep);
314 323
315 // store [base + index], value 324 // store [base + index], value
316 const Operator* Store(StoreRepresentation rep); 325 const Operator* Store(StoreRepresentation rep);
317 326
327 // unaligned load [base + index]
328 const Operator* UnalignedLoad(UnalignedLoadRepresentation rep);
329
330 // unaligned store [base + index], value
331 const Operator* UnalignedStore(UnalignedStoreRepresentation rep);
332
318 const Operator* StackSlot(MachineRepresentation rep); 333 const Operator* StackSlot(MachineRepresentation rep);
319 334
320 // Access to the machine stack. 335 // Access to the machine stack.
321 const Operator* LoadStackPointer(); 336 const Operator* LoadStackPointer();
322 const Operator* LoadFramePointer(); 337 const Operator* LoadFramePointer();
323 const Operator* LoadParentFramePointer(); 338 const Operator* LoadParentFramePointer();
324 339
325 // checked-load heap, index, length 340 // checked-load heap, index, length
326 const Operator* CheckedLoad(CheckedLoadRepresentation); 341 const Operator* CheckedLoad(CheckedLoadRepresentation);
327 // checked-store heap, index, length, value 342 // checked-store heap, index, length, value
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 }; 385 };
371 386
372 387
373 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) 388 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags)
374 389
375 } // namespace compiler 390 } // namespace compiler
376 } // namespace internal 391 } // namespace internal
377 } // namespace v8 392 } // namespace v8
378 393
379 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ 394 #endif // V8_COMPILER_MACHINE_OPERATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698