OLD | NEW |
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 // TODO(jochen): Remove this after the setting is turned on globally. | 5 // TODO(jochen): Remove this after the setting is turned on globally. |
6 #define V8_IMMINENT_DEPRECATION_WARNINGS | 6 #define V8_IMMINENT_DEPRECATION_WARNINGS |
7 | 7 |
8 #include "src/base/utils/random-number-generator.h" | 8 #include "src/base/utils/random-number-generator.h" |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/compiler/js-graph.h" | 10 #include "src/compiler/js-graph.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 R.CheckDontPutConstantOnRight(44); | 355 R.CheckDontPutConstantOnRight(44); |
356 | 356 |
357 Node* x = R.Parameter(); | 357 Node* x = R.Parameter(); |
358 Node* zero = R.Constant<int32_t>(0); | 358 Node* zero = R.Constant<int32_t>(0); |
359 | 359 |
360 R.CheckBinop(x, x, zero); // x >> 0 => x | 360 R.CheckBinop(x, x, zero); // x >> 0 => x |
361 } | 361 } |
362 | 362 |
363 | 363 |
364 static void CheckJsShift(ReducerTester* R) { | 364 static void CheckJsShift(ReducerTester* R) { |
365 DCHECK(R->machine.Word32ShiftIsSafe()); | 365 CHECK(R->machine.Word32ShiftIsSafe()); |
366 | 366 |
367 Node* x = R->Parameter(0); | 367 Node* x = R->Parameter(0); |
368 Node* y = R->Parameter(1); | 368 Node* y = R->Parameter(1); |
369 Node* thirty_one = R->Constant<int32_t>(0x1f); | 369 Node* thirty_one = R->Constant<int32_t>(0x1f); |
370 Node* y_and_thirty_one = | 370 Node* y_and_thirty_one = |
371 R->graph.NewNode(R->machine.Word32And(), y, thirty_one); | 371 R->graph.NewNode(R->machine.Word32And(), y, thirty_one); |
372 | 372 |
373 // If the underlying machine shift instructions 'and' their right operand | 373 // If the underlying machine shift instructions 'and' their right operand |
374 // with 0x1f then: x << (y & 0x1f) => x << y | 374 // with 0x1f then: x << (y & 0x1f) => x << y |
375 R->CheckFoldBinop(x, y, x, y_and_thirty_one); | 375 R->CheckFoldBinop(x, y, x, y_and_thirty_one); |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 // TODO(titzer): test MachineOperatorReducer for Float64Compare | 748 // TODO(titzer): test MachineOperatorReducer for Float64Compare |
749 // TODO(titzer): test MachineOperatorReducer for Float64Add | 749 // TODO(titzer): test MachineOperatorReducer for Float64Add |
750 // TODO(titzer): test MachineOperatorReducer for Float64Sub | 750 // TODO(titzer): test MachineOperatorReducer for Float64Sub |
751 // TODO(titzer): test MachineOperatorReducer for Float64Mul | 751 // TODO(titzer): test MachineOperatorReducer for Float64Mul |
752 // TODO(titzer): test MachineOperatorReducer for Float64Div | 752 // TODO(titzer): test MachineOperatorReducer for Float64Div |
753 // TODO(titzer): test MachineOperatorReducer for Float64Mod | 753 // TODO(titzer): test MachineOperatorReducer for Float64Mod |
754 | 754 |
755 } // namespace compiler | 755 } // namespace compiler |
756 } // namespace internal | 756 } // namespace internal |
757 } // namespace v8 | 757 } // namespace v8 |
OLD | NEW |