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

Side by Side Diff: src/compiler/raw-machine-assembler.h

Issue 1685183003: [turbofan] Fix a bug in the RawMachineAssembler (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixes one ARM unit test. Created 4 years, 10 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 | « no previous file | test/unittests/compiler/arm/instruction-selector-arm-unittest.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 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 #ifndef V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_ 5 #ifndef V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_
6 #define V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_ 6 #define V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/compiler/common-operator.h" 9 #include "src/compiler/common-operator.h"
10 #include "src/compiler/graph.h" 10 #include "src/compiler/graph.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 Node* WordSar(Node* a, Node* b) { 143 Node* WordSar(Node* a, Node* b) {
144 return AddNode(machine()->WordSar(), a, b); 144 return AddNode(machine()->WordSar(), a, b);
145 } 145 }
146 Node* WordRor(Node* a, Node* b) { 146 Node* WordRor(Node* a, Node* b) {
147 return AddNode(machine()->WordRor(), a, b); 147 return AddNode(machine()->WordRor(), a, b);
148 } 148 }
149 Node* WordEqual(Node* a, Node* b) { 149 Node* WordEqual(Node* a, Node* b) {
150 return AddNode(machine()->WordEqual(), a, b); 150 return AddNode(machine()->WordEqual(), a, b);
151 } 151 }
152 Node* WordNotEqual(Node* a, Node* b) { 152 Node* WordNotEqual(Node* a, Node* b) {
153 return WordBinaryNot(WordEqual(a, b)); 153 return Word32BinaryNot(WordEqual(a, b));
154 } 154 }
155 Node* WordNot(Node* a) { 155 Node* WordNot(Node* a) {
156 if (machine()->Is32()) { 156 if (machine()->Is32()) {
157 return Word32Not(a); 157 return Word32Not(a);
158 } else { 158 } else {
159 return Word64Not(a); 159 return Word64Not(a);
160 } 160 }
161 } 161 }
162 Node* WordBinaryNot(Node* a) {
163 if (machine()->Is32()) {
164 return Word32BinaryNot(a);
165 } else {
166 return Word64BinaryNot(a);
167 }
168 }
169 162
170 Node* Word32And(Node* a, Node* b) { 163 Node* Word32And(Node* a, Node* b) {
171 return AddNode(machine()->Word32And(), a, b); 164 return AddNode(machine()->Word32And(), a, b);
172 } 165 }
173 Node* Word32Or(Node* a, Node* b) { 166 Node* Word32Or(Node* a, Node* b) {
174 return AddNode(machine()->Word32Or(), a, b); 167 return AddNode(machine()->Word32Or(), a, b);
175 } 168 }
176 Node* Word32Xor(Node* a, Node* b) { 169 Node* Word32Xor(Node* a, Node* b) {
177 return AddNode(machine()->Word32Xor(), a, b); 170 return AddNode(machine()->Word32Xor(), a, b);
178 } 171 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 return AddNode(machine()->Word64Sar(), a, b); 210 return AddNode(machine()->Word64Sar(), a, b);
218 } 211 }
219 Node* Word64Ror(Node* a, Node* b) { 212 Node* Word64Ror(Node* a, Node* b) {
220 return AddNode(machine()->Word64Ror(), a, b); 213 return AddNode(machine()->Word64Ror(), a, b);
221 } 214 }
222 Node* Word64Clz(Node* a) { return AddNode(machine()->Word64Clz(), a); } 215 Node* Word64Clz(Node* a) { return AddNode(machine()->Word64Clz(), a); }
223 Node* Word64Equal(Node* a, Node* b) { 216 Node* Word64Equal(Node* a, Node* b) {
224 return AddNode(machine()->Word64Equal(), a, b); 217 return AddNode(machine()->Word64Equal(), a, b);
225 } 218 }
226 Node* Word64NotEqual(Node* a, Node* b) { 219 Node* Word64NotEqual(Node* a, Node* b) {
227 return Word64BinaryNot(Word64Equal(a, b)); 220 return Word32BinaryNot(Word64Equal(a, b));
228 } 221 }
229 Node* Word64Not(Node* a) { return Word64Xor(a, Int64Constant(-1)); } 222 Node* Word64Not(Node* a) { return Word64Xor(a, Int64Constant(-1)); }
230 Node* Word64BinaryNot(Node* a) { return Word64Equal(a, Int64Constant(0)); }
231 223
232 Node* Int32Add(Node* a, Node* b) { 224 Node* Int32Add(Node* a, Node* b) {
233 return AddNode(machine()->Int32Add(), a, b); 225 return AddNode(machine()->Int32Add(), a, b);
234 } 226 }
235 Node* Int32AddWithOverflow(Node* a, Node* b) { 227 Node* Int32AddWithOverflow(Node* a, Node* b) {
236 return AddNode(machine()->Int32AddWithOverflow(), a, b); 228 return AddNode(machine()->Int32AddWithOverflow(), a, b);
237 } 229 }
238 Node* Int32Sub(Node* a, Node* b) { 230 Node* Int32Sub(Node* a, Node* b) {
239 return AddNode(machine()->Int32Sub(), a, b); 231 return AddNode(machine()->Int32Sub(), a, b);
240 } 232 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 } 372 }
381 Node* Float32Min(Node* a, Node* b) { 373 Node* Float32Min(Node* a, Node* b) {
382 return AddNode(machine()->Float32Min().op(), a, b); 374 return AddNode(machine()->Float32Min().op(), a, b);
383 } 375 }
384 Node* Float32Abs(Node* a) { return AddNode(machine()->Float32Abs(), a); } 376 Node* Float32Abs(Node* a) { return AddNode(machine()->Float32Abs(), a); }
385 Node* Float32Sqrt(Node* a) { return AddNode(machine()->Float32Sqrt(), a); } 377 Node* Float32Sqrt(Node* a) { return AddNode(machine()->Float32Sqrt(), a); }
386 Node* Float32Equal(Node* a, Node* b) { 378 Node* Float32Equal(Node* a, Node* b) {
387 return AddNode(machine()->Float32Equal(), a, b); 379 return AddNode(machine()->Float32Equal(), a, b);
388 } 380 }
389 Node* Float32NotEqual(Node* a, Node* b) { 381 Node* Float32NotEqual(Node* a, Node* b) {
390 return WordBinaryNot(Float32Equal(a, b)); 382 return Word32BinaryNot(Float32Equal(a, b));
391 } 383 }
392 Node* Float32LessThan(Node* a, Node* b) { 384 Node* Float32LessThan(Node* a, Node* b) {
393 return AddNode(machine()->Float32LessThan(), a, b); 385 return AddNode(machine()->Float32LessThan(), a, b);
394 } 386 }
395 Node* Float32LessThanOrEqual(Node* a, Node* b) { 387 Node* Float32LessThanOrEqual(Node* a, Node* b) {
396 return AddNode(machine()->Float32LessThanOrEqual(), a, b); 388 return AddNode(machine()->Float32LessThanOrEqual(), a, b);
397 } 389 }
398 Node* Float32GreaterThan(Node* a, Node* b) { return Float32LessThan(b, a); } 390 Node* Float32GreaterThan(Node* a, Node* b) { return Float32LessThan(b, a); }
399 Node* Float32GreaterThanOrEqual(Node* a, Node* b) { 391 Node* Float32GreaterThanOrEqual(Node* a, Node* b) {
400 return Float32LessThanOrEqual(b, a); 392 return Float32LessThanOrEqual(b, a);
(...skipping 19 matching lines...) Expand all
420 } 412 }
421 Node* Float64Min(Node* a, Node* b) { 413 Node* Float64Min(Node* a, Node* b) {
422 return AddNode(machine()->Float64Min().op(), a, b); 414 return AddNode(machine()->Float64Min().op(), a, b);
423 } 415 }
424 Node* Float64Abs(Node* a) { return AddNode(machine()->Float64Abs(), a); } 416 Node* Float64Abs(Node* a) { return AddNode(machine()->Float64Abs(), a); }
425 Node* Float64Sqrt(Node* a) { return AddNode(machine()->Float64Sqrt(), a); } 417 Node* Float64Sqrt(Node* a) { return AddNode(machine()->Float64Sqrt(), a); }
426 Node* Float64Equal(Node* a, Node* b) { 418 Node* Float64Equal(Node* a, Node* b) {
427 return AddNode(machine()->Float64Equal(), a, b); 419 return AddNode(machine()->Float64Equal(), a, b);
428 } 420 }
429 Node* Float64NotEqual(Node* a, Node* b) { 421 Node* Float64NotEqual(Node* a, Node* b) {
430 return WordBinaryNot(Float64Equal(a, b)); 422 return Word32BinaryNot(Float64Equal(a, b));
431 } 423 }
432 Node* Float64LessThan(Node* a, Node* b) { 424 Node* Float64LessThan(Node* a, Node* b) {
433 return AddNode(machine()->Float64LessThan(), a, b); 425 return AddNode(machine()->Float64LessThan(), a, b);
434 } 426 }
435 Node* Float64LessThanOrEqual(Node* a, Node* b) { 427 Node* Float64LessThanOrEqual(Node* a, Node* b) {
436 return AddNode(machine()->Float64LessThanOrEqual(), a, b); 428 return AddNode(machine()->Float64LessThanOrEqual(), a, b);
437 } 429 }
438 Node* Float64GreaterThan(Node* a, Node* b) { return Float64LessThan(b, a); } 430 Node* Float64GreaterThan(Node* a, Node* b) { return Float64LessThan(b, a); }
439 Node* Float64GreaterThanOrEqual(Node* a, Node* b) { 431 Node* Float64GreaterThanOrEqual(Node* a, Node* b) {
440 return Float64LessThanOrEqual(b, a); 432 return Float64LessThanOrEqual(b, a);
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 bool bound_; 714 bool bound_;
723 friend class RawMachineAssembler; 715 friend class RawMachineAssembler;
724 DISALLOW_COPY_AND_ASSIGN(RawMachineLabel); 716 DISALLOW_COPY_AND_ASSIGN(RawMachineLabel);
725 }; 717 };
726 718
727 } // namespace compiler 719 } // namespace compiler
728 } // namespace internal 720 } // namespace internal
729 } // namespace v8 721 } // namespace v8
730 722
731 #endif // V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_ 723 #endif // V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | test/unittests/compiler/arm/instruction-selector-arm-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698