| 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 |