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

Side by Side Diff: src/compiler/arm64/code-generator-arm64.cc

Issue 1024093002: [ARM64] [turbofan] Support Float64Min and Float64Max. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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-codes-arm64.h » ('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/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 6
7 #include "src/arm64/macro-assembler-arm64.h" 7 #include "src/arm64/macro-assembler-arm64.h"
8 #include "src/compiler/code-generator-impl.h" 8 #include "src/compiler/code-generator-impl.h"
9 #include "src/compiler/gap-resolver.h" 9 #include "src/compiler/gap-resolver.h"
10 #include "src/compiler/node-matchers.h" 10 #include "src/compiler/node-matchers.h"
(...skipping 722 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 Register tmp = scope.AcquireX(); 733 Register tmp = scope.AcquireX();
734 __ Fmov(tmp.W(), i.InputFloat32Register(0)); 734 __ Fmov(tmp.W(), i.InputFloat32Register(0));
735 __ Bfi(tmp, i.InputRegister(1), 32, 32); 735 __ Bfi(tmp, i.InputRegister(1), 32, 32);
736 __ Fmov(i.OutputFloat64Register(), tmp); 736 __ Fmov(i.OutputFloat64Register(), tmp);
737 break; 737 break;
738 } 738 }
739 case kArm64Float64MoveU64: { 739 case kArm64Float64MoveU64: {
740 __ Fmov(i.OutputFloat64Register(), i.InputRegister(0)); 740 __ Fmov(i.OutputFloat64Register(), i.InputRegister(0));
741 break; 741 break;
742 } 742 }
743 case kArm64Float64Max:
744 __ Fmax(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
745 i.InputDoubleRegister(1));
746 break;
747 case kArm64Float64Min:
748 __ Fmin(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
749 i.InputDoubleRegister(1));
750 break;
743 case kArm64Ldrb: 751 case kArm64Ldrb:
744 __ Ldrb(i.OutputRegister(), i.MemoryOperand()); 752 __ Ldrb(i.OutputRegister(), i.MemoryOperand());
745 break; 753 break;
746 case kArm64Ldrsb: 754 case kArm64Ldrsb:
747 __ Ldrsb(i.OutputRegister(), i.MemoryOperand()); 755 __ Ldrsb(i.OutputRegister(), i.MemoryOperand());
748 break; 756 break;
749 case kArm64Strb: 757 case kArm64Strb:
750 __ Strb(i.InputRegister(2), i.MemoryOperand()); 758 __ Strb(i.InputRegister(2), i.MemoryOperand());
751 break; 759 break;
752 case kArm64Ldrh: 760 case kArm64Ldrh:
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 case kCheckedStoreWord32: 843 case kCheckedStoreWord32:
836 ASSEMBLE_CHECKED_STORE_INTEGER(Str); 844 ASSEMBLE_CHECKED_STORE_INTEGER(Str);
837 break; 845 break;
838 case kCheckedStoreFloat32: 846 case kCheckedStoreFloat32:
839 ASSEMBLE_CHECKED_STORE_FLOAT(32); 847 ASSEMBLE_CHECKED_STORE_FLOAT(32);
840 break; 848 break;
841 case kCheckedStoreFloat64: 849 case kCheckedStoreFloat64:
842 ASSEMBLE_CHECKED_STORE_FLOAT(64); 850 ASSEMBLE_CHECKED_STORE_FLOAT(64);
843 break; 851 break;
844 } 852 }
845 } 853 } // NOLINT(readability/fn_size)
846 854
847 855
848 // Assemble branches after this instruction. 856 // Assemble branches after this instruction.
849 void CodeGenerator::AssembleArchBranch(Instruction* instr, BranchInfo* branch) { 857 void CodeGenerator::AssembleArchBranch(Instruction* instr, BranchInfo* branch) {
850 Arm64OperandConverter i(this, instr); 858 Arm64OperandConverter i(this, instr);
851 Label* tlabel = branch->true_label; 859 Label* tlabel = branch->true_label;
852 Label* flabel = branch->false_label; 860 Label* flabel = branch->false_label;
853 FlagsCondition condition = branch->condition; 861 FlagsCondition condition = branch->condition;
854 ArchOpcode opcode = instr->arch_opcode(); 862 ArchOpcode opcode = instr->arch_opcode();
855 863
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 } 1217 }
1210 } 1218 }
1211 MarkLazyDeoptSite(); 1219 MarkLazyDeoptSite();
1212 } 1220 }
1213 1221
1214 #undef __ 1222 #undef __
1215 1223
1216 } // namespace compiler 1224 } // namespace compiler
1217 } // namespace internal 1225 } // namespace internal
1218 } // namespace v8 1226 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/arm64/instruction-codes-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698