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

Side by Side Diff: src/crankshaft/s390/lithium-s390.cc

Issue 2075263002: PPC/s390: [builtins] Introduce proper Float64Exp operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: addressed comments, uploaded doubleregister to d0 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
« no previous file with comments | « src/crankshaft/s390/lithium-s390.h ('k') | src/ppc/codegen-ppc.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/crankshaft/s390/lithium-s390.h" 5 #include "src/crankshaft/s390/lithium-s390.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/crankshaft/hydrogen-osr.h" 9 #include "src/crankshaft/hydrogen-osr.h"
10 #include "src/crankshaft/lithium-inl.h" 10 #include "src/crankshaft/lithium-inl.h"
(...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 LInstruction* result = 1027 LInstruction* result =
1028 DefineAsRegister(new (zone()) LMathAbs(context, input)); 1028 DefineAsRegister(new (zone()) LMathAbs(context, input));
1029 if (!r.IsDouble() && !r.IsSmiOrInteger32()) result = AssignPointerMap(result); 1029 if (!r.IsDouble() && !r.IsSmiOrInteger32()) result = AssignPointerMap(result);
1030 if (!r.IsDouble()) result = AssignEnvironment(result); 1030 if (!r.IsDouble()) result = AssignEnvironment(result);
1031 return result; 1031 return result;
1032 } 1032 }
1033 1033
1034 LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) { 1034 LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) {
1035 DCHECK(instr->representation().IsDouble()); 1035 DCHECK(instr->representation().IsDouble());
1036 DCHECK(instr->value()->representation().IsDouble()); 1036 DCHECK(instr->value()->representation().IsDouble());
1037 LOperand* input = UseFixedDouble(instr->value(), d1); 1037 LOperand* input = UseFixedDouble(instr->value(), d0);
1038 return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d1), instr); 1038 return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d0), instr);
1039 } 1039 }
1040 1040
1041 LInstruction* LChunkBuilder::DoMathClz32(HUnaryMathOperation* instr) { 1041 LInstruction* LChunkBuilder::DoMathClz32(HUnaryMathOperation* instr) {
1042 LOperand* input = UseRegisterAtStart(instr->value()); 1042 LOperand* input = UseRegisterAtStart(instr->value());
1043 LMathClz32* result = new (zone()) LMathClz32(input); 1043 LMathClz32* result = new (zone()) LMathClz32(input);
1044 return DefineAsRegister(result); 1044 return DefineAsRegister(result);
1045 } 1045 }
1046 1046
1047 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { 1047 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
1048 DCHECK(instr->representation().IsDouble()); 1048 DCHECK(instr->representation().IsDouble());
1049 DCHECK(instr->value()->representation().IsDouble()); 1049 DCHECK(instr->value()->representation().IsDouble());
1050 LOperand* input = UseRegister(instr->value()); 1050 LOperand* input = UseFixedDouble(instr->value(), d0);
1051 LOperand* temp1 = TempRegister(); 1051 return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), d0), instr);
1052 LOperand* temp2 = TempRegister();
1053 LOperand* double_temp = TempDoubleRegister();
1054 LMathExp* result = new (zone()) LMathExp(input, double_temp, temp1, temp2);
1055 return DefineAsRegister(result);
1056 } 1052 }
1057 1053
1058 LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) { 1054 LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) {
1059 LOperand* input = UseRegisterAtStart(instr->value()); 1055 LOperand* input = UseRegisterAtStart(instr->value());
1060 LMathSqrt* result = new (zone()) LMathSqrt(input); 1056 LMathSqrt* result = new (zone()) LMathSqrt(input);
1061 return DefineAsRegister(result); 1057 return DefineAsRegister(result);
1062 } 1058 }
1063 1059
1064 LInstruction* LChunkBuilder::DoMathPowHalf(HUnaryMathOperation* instr) { 1060 LInstruction* LChunkBuilder::DoMathPowHalf(HUnaryMathOperation* instr) {
1065 LOperand* input = UseRegisterAtStart(instr->value()); 1061 LOperand* input = UseRegisterAtStart(instr->value());
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { 2254 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) {
2259 LOperand* object = UseRegister(instr->object()); 2255 LOperand* object = UseRegister(instr->object());
2260 LOperand* index = UseTempRegister(instr->index()); 2256 LOperand* index = UseTempRegister(instr->index());
2261 LLoadFieldByIndex* load = new (zone()) LLoadFieldByIndex(object, index); 2257 LLoadFieldByIndex* load = new (zone()) LLoadFieldByIndex(object, index);
2262 LInstruction* result = DefineSameAsFirst(load); 2258 LInstruction* result = DefineSameAsFirst(load);
2263 return AssignPointerMap(result); 2259 return AssignPointerMap(result);
2264 } 2260 }
2265 2261
2266 } // namespace internal 2262 } // namespace internal
2267 } // namespace v8 2263 } // namespace v8
OLDNEW
« no previous file with comments | « src/crankshaft/s390/lithium-s390.h ('k') | src/ppc/codegen-ppc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698