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

Side by Side Diff: src/compiler/arm/instruction-selector-arm.cc

Issue 2216383002: TurboFan: Introduce TaggedSigned and TaggedPointer representations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Mips compile fix. Created 4 years, 4 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 | src/compiler/arm64/instruction-selector-arm64.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 #include "src/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/base/bits.h" 6 #include "src/base/bits.h"
7 #include "src/compiler/instruction-selector-impl.h" 7 #include "src/compiler/instruction-selector-impl.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/node-properties.h" 9 #include "src/compiler/node-properties.h"
10 10
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 case MachineRepresentation::kFloat64: 395 case MachineRepresentation::kFloat64:
396 opcode = kArmVldrF64; 396 opcode = kArmVldrF64;
397 break; 397 break;
398 case MachineRepresentation::kBit: // Fall through. 398 case MachineRepresentation::kBit: // Fall through.
399 case MachineRepresentation::kWord8: 399 case MachineRepresentation::kWord8:
400 opcode = load_rep.IsUnsigned() ? kArmLdrb : kArmLdrsb; 400 opcode = load_rep.IsUnsigned() ? kArmLdrb : kArmLdrsb;
401 break; 401 break;
402 case MachineRepresentation::kWord16: 402 case MachineRepresentation::kWord16:
403 opcode = load_rep.IsUnsigned() ? kArmLdrh : kArmLdrsh; 403 opcode = load_rep.IsUnsigned() ? kArmLdrh : kArmLdrsh;
404 break; 404 break;
405 case MachineRepresentation::kTaggedSigned: // Fall through.
406 case MachineRepresentation::kTaggedPointer: // Fall through.
405 case MachineRepresentation::kTagged: // Fall through. 407 case MachineRepresentation::kTagged: // Fall through.
406 case MachineRepresentation::kWord32: 408 case MachineRepresentation::kWord32:
407 opcode = kArmLdr; 409 opcode = kArmLdr;
408 break; 410 break;
409 case MachineRepresentation::kWord64: // Fall through. 411 case MachineRepresentation::kWord64: // Fall through.
410 case MachineRepresentation::kSimd128: // Fall through. 412 case MachineRepresentation::kSimd128: // Fall through.
411 case MachineRepresentation::kNone: 413 case MachineRepresentation::kNone:
412 UNREACHABLE(); 414 UNREACHABLE();
413 return; 415 return;
414 } 416 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 case MachineRepresentation::kFloat64: 476 case MachineRepresentation::kFloat64:
475 opcode = kArmVstrF64; 477 opcode = kArmVstrF64;
476 break; 478 break;
477 case MachineRepresentation::kBit: // Fall through. 479 case MachineRepresentation::kBit: // Fall through.
478 case MachineRepresentation::kWord8: 480 case MachineRepresentation::kWord8:
479 opcode = kArmStrb; 481 opcode = kArmStrb;
480 break; 482 break;
481 case MachineRepresentation::kWord16: 483 case MachineRepresentation::kWord16:
482 opcode = kArmStrh; 484 opcode = kArmStrh;
483 break; 485 break;
486 case MachineRepresentation::kTaggedSigned: // Fall through.
487 case MachineRepresentation::kTaggedPointer: // Fall through.
484 case MachineRepresentation::kTagged: // Fall through. 488 case MachineRepresentation::kTagged: // Fall through.
485 case MachineRepresentation::kWord32: 489 case MachineRepresentation::kWord32:
486 opcode = kArmStr; 490 opcode = kArmStr;
487 break; 491 break;
488 case MachineRepresentation::kWord64: // Fall through. 492 case MachineRepresentation::kWord64: // Fall through.
489 case MachineRepresentation::kSimd128: // Fall through. 493 case MachineRepresentation::kSimd128: // Fall through.
490 case MachineRepresentation::kNone: 494 case MachineRepresentation::kNone:
491 UNREACHABLE(); 495 UNREACHABLE();
492 return; 496 return;
493 } 497 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 case MachineRepresentation::kWord32: 637 case MachineRepresentation::kWord32:
634 opcode = kCheckedLoadWord32; 638 opcode = kCheckedLoadWord32;
635 break; 639 break;
636 case MachineRepresentation::kFloat32: 640 case MachineRepresentation::kFloat32:
637 opcode = kCheckedLoadFloat32; 641 opcode = kCheckedLoadFloat32;
638 break; 642 break;
639 case MachineRepresentation::kFloat64: 643 case MachineRepresentation::kFloat64:
640 opcode = kCheckedLoadFloat64; 644 opcode = kCheckedLoadFloat64;
641 break; 645 break;
642 case MachineRepresentation::kBit: // Fall through. 646 case MachineRepresentation::kBit: // Fall through.
647 case MachineRepresentation::kTaggedSigned: // Fall through.
648 case MachineRepresentation::kTaggedPointer: // Fall through.
643 case MachineRepresentation::kTagged: // Fall through. 649 case MachineRepresentation::kTagged: // Fall through.
644 case MachineRepresentation::kWord64: // Fall through. 650 case MachineRepresentation::kWord64: // Fall through.
645 case MachineRepresentation::kSimd128: // Fall through. 651 case MachineRepresentation::kSimd128: // Fall through.
646 case MachineRepresentation::kNone: 652 case MachineRepresentation::kNone:
647 UNREACHABLE(); 653 UNREACHABLE();
648 return; 654 return;
649 } 655 }
650 InstructionOperand offset_operand = g.UseRegister(offset); 656 InstructionOperand offset_operand = g.UseRegister(offset);
651 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) 657 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp)
652 ? g.UseImmediate(length) 658 ? g.UseImmediate(length)
(...skipping 22 matching lines...) Expand all
675 case MachineRepresentation::kWord32: 681 case MachineRepresentation::kWord32:
676 opcode = kCheckedStoreWord32; 682 opcode = kCheckedStoreWord32;
677 break; 683 break;
678 case MachineRepresentation::kFloat32: 684 case MachineRepresentation::kFloat32:
679 opcode = kCheckedStoreFloat32; 685 opcode = kCheckedStoreFloat32;
680 break; 686 break;
681 case MachineRepresentation::kFloat64: 687 case MachineRepresentation::kFloat64:
682 opcode = kCheckedStoreFloat64; 688 opcode = kCheckedStoreFloat64;
683 break; 689 break;
684 case MachineRepresentation::kBit: // Fall through. 690 case MachineRepresentation::kBit: // Fall through.
691 case MachineRepresentation::kTaggedSigned: // Fall through.
692 case MachineRepresentation::kTaggedPointer: // Fall through.
685 case MachineRepresentation::kTagged: // Fall through. 693 case MachineRepresentation::kTagged: // Fall through.
686 case MachineRepresentation::kWord64: // Fall through. 694 case MachineRepresentation::kWord64: // Fall through.
687 case MachineRepresentation::kSimd128: // Fall through. 695 case MachineRepresentation::kSimd128: // Fall through.
688 case MachineRepresentation::kNone: 696 case MachineRepresentation::kNone:
689 UNREACHABLE(); 697 UNREACHABLE();
690 return; 698 return;
691 } 699 }
692 InstructionOperand offset_operand = g.UseRegister(offset); 700 InstructionOperand offset_operand = g.UseRegister(offset);
693 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) 701 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp)
694 ? g.UseImmediate(length) 702 ? g.UseImmediate(length)
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after
2250 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); 2258 Vector<MachineType> req_aligned = Vector<MachineType>::New(2);
2251 req_aligned[0] = MachineType::Float32(); 2259 req_aligned[0] = MachineType::Float32();
2252 req_aligned[1] = MachineType::Float64(); 2260 req_aligned[1] = MachineType::Float64();
2253 return MachineOperatorBuilder::AlignmentRequirements:: 2261 return MachineOperatorBuilder::AlignmentRequirements::
2254 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); 2262 SomeUnalignedAccessUnsupported(req_aligned, req_aligned);
2255 } 2263 }
2256 2264
2257 } // namespace compiler 2265 } // namespace compiler
2258 } // namespace internal 2266 } // namespace internal
2259 } // namespace v8 2267 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/arm64/instruction-selector-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698