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

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

Issue 2060233002: [turbofan] Prevent storing signalling NaNs into holey double arrays. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix spelling, rebase Created 4 years, 6 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
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/compiler/instruction-selector-impl.h" 5 #include "src/compiler/instruction-selector-impl.h"
6 #include "src/compiler/node-matchers.h" 6 #include "src/compiler/node-matchers.h"
7 #include "src/compiler/node-properties.h" 7 #include "src/compiler/node-properties.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 2383 matching lines...) Expand 10 before | Expand all | Expand 10 after
2394 Node* right_of_left = left->InputAt(1); 2394 Node* right_of_left = left->InputAt(1);
2395 Emit(kArm64Bfi, g.DefineSameAsFirst(left), g.UseRegister(right_of_left), 2395 Emit(kArm64Bfi, g.DefineSameAsFirst(left), g.UseRegister(right_of_left),
2396 g.UseRegister(right), g.TempImmediate(32), g.TempImmediate(32)); 2396 g.UseRegister(right), g.TempImmediate(32), g.TempImmediate(32));
2397 Emit(kArm64Float64MoveU64, g.DefineAsRegister(node), g.UseRegister(left)); 2397 Emit(kArm64Float64MoveU64, g.DefineAsRegister(node), g.UseRegister(left));
2398 return; 2398 return;
2399 } 2399 }
2400 Emit(kArm64Float64InsertHighWord32, g.DefineAsRegister(node), 2400 Emit(kArm64Float64InsertHighWord32, g.DefineAsRegister(node),
2401 g.UseRegister(left), g.UseRegister(right)); 2401 g.UseRegister(left), g.UseRegister(right));
2402 } 2402 }
2403 2403
2404 void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
2405 VisitRR(this, kArm64Float64SilenceNaN, node);
2406 }
2407
2404 void InstructionSelector::VisitAtomicLoad(Node* node) { 2408 void InstructionSelector::VisitAtomicLoad(Node* node) {
2405 LoadRepresentation load_rep = LoadRepresentationOf(node->op()); 2409 LoadRepresentation load_rep = LoadRepresentationOf(node->op());
2406 Arm64OperandGenerator g(this); 2410 Arm64OperandGenerator g(this);
2407 Node* base = node->InputAt(0); 2411 Node* base = node->InputAt(0);
2408 Node* index = node->InputAt(1); 2412 Node* index = node->InputAt(1);
2409 ArchOpcode opcode = kArchNop; 2413 ArchOpcode opcode = kArchNop;
2410 switch (load_rep.representation()) { 2414 switch (load_rep.representation()) {
2411 case MachineRepresentation::kWord8: 2415 case MachineRepresentation::kWord8:
2412 opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8; 2416 opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
2413 break; 2417 break;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
2485 // static 2489 // static
2486 MachineOperatorBuilder::AlignmentRequirements 2490 MachineOperatorBuilder::AlignmentRequirements
2487 InstructionSelector::AlignmentRequirements() { 2491 InstructionSelector::AlignmentRequirements() {
2488 return MachineOperatorBuilder::AlignmentRequirements:: 2492 return MachineOperatorBuilder::AlignmentRequirements::
2489 FullUnalignedAccessSupport(); 2493 FullUnalignedAccessSupport();
2490 } 2494 }
2491 2495
2492 } // namespace compiler 2496 } // namespace compiler
2493 } // namespace internal 2497 } // namespace internal
2494 } // namespace v8 2498 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-scheduler-arm64.cc ('k') | src/compiler/ia32/code-generator-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698