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

Side by Side Diff: src/compiler/code-stub-assembler.h

Issue 1841993002: [builtins] Make Math.ceil, Math.trunc and Math.round optimizable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 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/builtins.cc ('k') | src/compiler/code-stub-assembler.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 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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 V(Word32Sar) \ 90 V(Word32Sar) \
91 V(Word32Ror) \ 91 V(Word32Ror) \
92 V(Word64Or) \ 92 V(Word64Or) \
93 V(Word64And) \ 93 V(Word64And) \
94 V(Word64Xor) \ 94 V(Word64Xor) \
95 V(Word64Shr) \ 95 V(Word64Shr) \
96 V(Word64Sar) \ 96 V(Word64Sar) \
97 V(Word64Ror) 97 V(Word64Ror)
98 98
99 #define CODE_STUB_ASSEMBLER_UNARY_OP_LIST(V) \ 99 #define CODE_STUB_ASSEMBLER_UNARY_OP_LIST(V) \
100 V(Float64Neg) \
100 V(Float64Sqrt) \ 101 V(Float64Sqrt) \
101 V(ChangeFloat64ToUint32) \ 102 V(ChangeFloat64ToUint32) \
102 V(ChangeInt32ToFloat64) \ 103 V(ChangeInt32ToFloat64) \
103 V(ChangeInt32ToInt64) \ 104 V(ChangeInt32ToInt64) \
104 V(ChangeUint32ToFloat64) \ 105 V(ChangeUint32ToFloat64) \
105 V(ChangeUint32ToUint64) 106 V(ChangeUint32ToUint64)
106 107
107 class CodeStubAssembler { 108 class CodeStubAssembler {
108 public: 109 public:
109 // Create with CallStub linkage. 110 // Create with CallStub linkage.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 Node* BooleanMapConstant(); 162 Node* BooleanMapConstant();
162 Node* HeapNumberMapConstant(); 163 Node* HeapNumberMapConstant();
163 Node* NullConstant(); 164 Node* NullConstant();
164 Node* UndefinedConstant(); 165 Node* UndefinedConstant();
165 166
166 Node* Parameter(int value); 167 Node* Parameter(int value);
167 void Return(Node* value); 168 void Return(Node* value);
168 169
169 void Bind(Label* label); 170 void Bind(Label* label);
170 void Goto(Label* label); 171 void Goto(Label* label);
172 void GotoIf(Node* condition, Label* true_label);
173 void GotoUnless(Node* condition, Label* false_label);
171 void Branch(Node* condition, Label* true_label, Label* false_label); 174 void Branch(Node* condition, Label* true_label, Label* false_label);
172 175
173 void Switch(Node* index, Label* default_label, int32_t* case_values, 176 void Switch(Node* index, Label* default_label, int32_t* case_values,
174 Label** case_labels, size_t case_count); 177 Label** case_labels, size_t case_count);
175 178
176 // Access to the frame pointer 179 // Access to the frame pointer
177 Node* LoadFramePointer(); 180 Node* LoadFramePointer();
178 Node* LoadParentFramePointer(); 181 Node* LoadParentFramePointer();
179 182
180 // Access to the stack pointer 183 // Access to the stack pointer
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 size_t result_size = 1); 256 size_t result_size = 1);
254 257
255 Node* TailCall(const CallInterfaceDescriptor& descriptor, Node* target, 258 Node* TailCall(const CallInterfaceDescriptor& descriptor, Node* target,
256 Node** args, size_t result_size = 1); 259 Node** args, size_t result_size = 1);
257 260
258 // =========================================================================== 261 // ===========================================================================
259 // Macros 262 // Macros
260 // =========================================================================== 263 // ===========================================================================
261 264
262 // Float64 operations. 265 // Float64 operations.
266 Node* Float64Ceil(Node* x);
263 Node* Float64Floor(Node* x); 267 Node* Float64Floor(Node* x);
268 Node* Float64Round(Node* x);
269 Node* Float64Trunc(Node* x);
264 270
265 // Tag a Word as a Smi value. 271 // Tag a Word as a Smi value.
266 Node* SmiTag(Node* value); 272 Node* SmiTag(Node* value);
267 // Untag a Smi value as a Word. 273 // Untag a Smi value as a Word.
268 Node* SmiUntag(Node* value); 274 Node* SmiUntag(Node* value);
269 275
270 // Smi conversions. 276 // Smi conversions.
271 Node* SmiToFloat64(Node* value); 277 Node* SmiToFloat64(Node* value);
272 Node* SmiToWord32(Node* value); 278 Node* SmiToWord32(Node* value);
273 279
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 // Map of variables to the list of value nodes that have been added from each 449 // Map of variables to the list of value nodes that have been added from each
444 // merge path in their order of merging. 450 // merge path in their order of merging.
445 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; 451 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_;
446 }; 452 };
447 453
448 } // namespace compiler 454 } // namespace compiler
449 } // namespace internal 455 } // namespace internal
450 } // namespace v8 456 } // namespace v8
451 457
452 #endif // V8_COMPILER_CODE_STUB_ASSEMBLER_H_ 458 #endif // V8_COMPILER_CODE_STUB_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | src/compiler/code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698