| OLD | NEW | 
|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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_CODE_STUB_ASSEMBLER_H_ | 5 #ifndef V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 
| 6 #define V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 6 #define V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 | 9 | 
| 10 // Clients of this interface shouldn't depend on lots of compiler internals. | 10 // Clients of this interface shouldn't depend on lots of compiler internals. | 
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 188   // Access to the frame pointer | 188   // Access to the frame pointer | 
| 189   Node* LoadFramePointer(); | 189   Node* LoadFramePointer(); | 
| 190   Node* LoadParentFramePointer(); | 190   Node* LoadParentFramePointer(); | 
| 191 | 191 | 
| 192   // Access to the stack pointer | 192   // Access to the stack pointer | 
| 193   Node* LoadStackPointer(); | 193   Node* LoadStackPointer(); | 
| 194 | 194 | 
| 195   // Load raw memory location. | 195   // Load raw memory location. | 
| 196   Node* Load(MachineType rep, Node* base); | 196   Node* Load(MachineType rep, Node* base); | 
| 197   Node* Load(MachineType rep, Node* base, Node* index); | 197   Node* Load(MachineType rep, Node* base, Node* index); | 
| 198   Node* AtomicLoad(MachineType rep, Node* base, Node* index); |  | 
| 199 | 198 | 
| 200   // Store value to raw memory location. | 199   // Store value to raw memory location. | 
| 201   Node* Store(MachineRepresentation rep, Node* base, Node* value); | 200   Node* Store(MachineRepresentation rep, Node* base, Node* value); | 
| 202   Node* Store(MachineRepresentation rep, Node* base, Node* index, Node* value); | 201   Node* Store(MachineRepresentation rep, Node* base, Node* index, Node* value); | 
| 203   Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* value); | 202   Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* value); | 
| 204   Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* index, | 203   Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* index, | 
| 205                             Node* value); | 204                             Node* value); | 
| 206 | 205 | 
| 207 // Basic arithmetic operations. | 206 // Basic arithmetic operations. | 
| 208 #define DECLARE_CODE_STUB_ASSEMBER_BINARY_OP(name) Node* name(Node* a, Node* b); | 207 #define DECLARE_CODE_STUB_ASSEMBER_BINARY_OP(name) Node* name(Node* a, Node* b); | 
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 387   Node* BitFieldDecode(Node* word32, uint32_t shift, uint32_t mask); | 386   Node* BitFieldDecode(Node* word32, uint32_t shift, uint32_t mask); | 
| 388 | 387 | 
| 389   // Conversions. | 388   // Conversions. | 
| 390   Node* ChangeFloat64ToTagged(Node* value); | 389   Node* ChangeFloat64ToTagged(Node* value); | 
| 391   Node* ChangeInt32ToTagged(Node* value); | 390   Node* ChangeInt32ToTagged(Node* value); | 
| 392   Node* ChangeUint32ToTagged(Node* value); | 391   Node* ChangeUint32ToTagged(Node* value); | 
| 393   Node* TruncateTaggedToFloat64(Node* context, Node* value); | 392   Node* TruncateTaggedToFloat64(Node* context, Node* value); | 
| 394   Node* TruncateTaggedToWord32(Node* context, Node* value); | 393   Node* TruncateTaggedToWord32(Node* context, Node* value); | 
| 395   // Truncate to int32 using JavaScript truncation mode. | 394   // Truncate to int32 using JavaScript truncation mode. | 
| 396   Node* TruncateFloat64ToInt32(Node* value); | 395   Node* TruncateFloat64ToInt32(Node* value); | 
| 397   // No-op on 32-bit, otherwise zero extend. |  | 
| 398   Node* ChangeUint32ToWord(Node* value); |  | 
| 399 | 396 | 
| 400   // Type conversions. | 397   // Type conversions. | 
| 401   // Throws a TypeError for {method_name} if {value} is not coercible to Object, | 398   // Throws a TypeError for {method_name} if {value} is not coercible to Object, | 
| 402   // or returns the {value} converted to a String otherwise. | 399   // or returns the {value} converted to a String otherwise. | 
| 403   Node* ToThisString(Node* context, Node* value, char const* method_name); | 400   Node* ToThisString(Node* context, Node* value, char const* method_name); | 
| 404 | 401 | 
| 405   // String helpers. | 402   // String helpers. | 
| 406   // Load a character from a String (might flatten a ConsString). | 403   // Load a character from a String (might flatten a ConsString). | 
| 407   Node* StringCharCodeAt(Node* string, Node* smi_index); | 404   Node* StringCharCodeAt(Node* string, Node* smi_index); | 
| 408   // Return the single character string with only {code}. | 405   // Return the single character string with only {code}. | 
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 508   // Map of variables to the list of value nodes that have been added from each | 505   // Map of variables to the list of value nodes that have been added from each | 
| 509   // merge path in their order of merging. | 506   // merge path in their order of merging. | 
| 510   std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; | 507   std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; | 
| 511 }; | 508 }; | 
| 512 | 509 | 
| 513 }  // namespace compiler | 510 }  // namespace compiler | 
| 514 }  // namespace internal | 511 }  // namespace internal | 
| 515 }  // namespace v8 | 512 }  // namespace v8 | 
| 516 | 513 | 
| 517 #endif  // V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 514 #endif  // V8_COMPILER_CODE_STUB_ASSEMBLER_H_ | 
| OLD | NEW | 
|---|