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 #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 Loading... |
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 Loading... |
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 |
OLD | NEW |