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

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

Issue 2367413002: [turbofan] Introduces the BitcastWordToTaggedSigned and BitcastTaggedToWord opcodes. (Closed)
Patch Set: Update. Created 4 years, 2 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/compiler/instruction-selector.cc ('k') | src/compiler/machine-operator.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 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 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 const Operator* Int64Mul(); 270 const Operator* Int64Mul();
271 const Operator* Int64Div(); 271 const Operator* Int64Div();
272 const Operator* Int64Mod(); 272 const Operator* Int64Mod();
273 const Operator* Int64LessThan(); 273 const Operator* Int64LessThan();
274 const Operator* Int64LessThanOrEqual(); 274 const Operator* Int64LessThanOrEqual();
275 const Operator* Uint64Div(); 275 const Operator* Uint64Div();
276 const Operator* Uint64LessThan(); 276 const Operator* Uint64LessThan();
277 const Operator* Uint64LessThanOrEqual(); 277 const Operator* Uint64LessThanOrEqual();
278 const Operator* Uint64Mod(); 278 const Operator* Uint64Mod();
279 279
280 // This operator reinterprets the bits of a tagged pointer as word.
281 const Operator* BitcastTaggedToWord();
282
280 // This operator reinterprets the bits of a word as tagged pointer. 283 // This operator reinterprets the bits of a word as tagged pointer.
281 const Operator* BitcastWordToTagged(); 284 const Operator* BitcastWordToTagged();
282 285
286 // This operator reinterprets the bits of a word as a Smi.
287 const Operator* BitcastWordToTaggedSigned();
288
283 // JavaScript float64 to int32/uint32 truncation. 289 // JavaScript float64 to int32/uint32 truncation.
284 const Operator* TruncateFloat64ToWord32(); 290 const Operator* TruncateFloat64ToWord32();
285 291
286 // These operators change the representation of numbers while preserving the 292 // These operators change the representation of numbers while preserving the
287 // value of the number. Narrowing operators assume the input is representable 293 // value of the number. Narrowing operators assume the input is representable
288 // in the target type and are *not* defined for other inputs. 294 // in the target type and are *not* defined for other inputs.
289 // Use narrowing change operators only when there is a static guarantee that 295 // Use narrowing change operators only when there is a static guarantee that
290 // the input value is representable in the target value. 296 // the input value is representable in the target value.
291 const Operator* ChangeFloat32ToFloat64(); 297 const Operator* ChangeFloat32ToFloat64();
292 const Operator* ChangeFloat64ToInt32(); // narrowing 298 const Operator* ChangeFloat64ToInt32(); // narrowing
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 }; 694 };
689 695
690 696
691 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) 697 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags)
692 698
693 } // namespace compiler 699 } // namespace compiler
694 } // namespace internal 700 } // namespace internal
695 } // namespace v8 701 } // namespace v8
696 702
697 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ 703 #endif // V8_COMPILER_MACHINE_OPERATOR_H_
OLDNEW
« no previous file with comments | « src/compiler/instruction-selector.cc ('k') | src/compiler/machine-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698