| 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/ppc/lithium-ppc.h" | 5 #include "src/crankshaft/ppc/lithium-ppc.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 1932 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1943 return DefineAsRegister(new (zone()) LConstantT); | 1943 return DefineAsRegister(new (zone()) LConstantT); |
| 1944 } else { | 1944 } else { |
| 1945 UNREACHABLE(); | 1945 UNREACHABLE(); |
| 1946 return NULL; | 1946 return NULL; |
| 1947 } | 1947 } |
| 1948 } | 1948 } |
| 1949 | 1949 |
| 1950 | 1950 |
| 1951 LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) { | 1951 LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) { |
| 1952 LOperand* context = UseRegisterAtStart(instr->value()); | 1952 LOperand* context = UseRegisterAtStart(instr->value()); |
| 1953 return DefineAsRegister(new (zone()) LLoadContextSlot(context)); | 1953 LInstruction* result = |
| 1954 DefineAsRegister(new (zone()) LLoadContextSlot(context)); |
| 1955 if (instr->RequiresHoleCheck() && instr->DeoptimizesOnHole()) { |
| 1956 result = AssignEnvironment(result); |
| 1957 } |
| 1958 return result; |
| 1954 } | 1959 } |
| 1955 | 1960 |
| 1956 | 1961 |
| 1957 LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) { | 1962 LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) { |
| 1958 LOperand* context; | 1963 LOperand* context; |
| 1959 LOperand* value; | 1964 LOperand* value; |
| 1960 if (instr->NeedsWriteBarrier()) { | 1965 if (instr->NeedsWriteBarrier()) { |
| 1961 context = UseTempRegister(instr->context()); | 1966 context = UseTempRegister(instr->context()); |
| 1962 value = UseTempRegister(instr->value()); | 1967 value = UseTempRegister(instr->value()); |
| 1963 } else { | 1968 } else { |
| 1964 context = UseRegister(instr->context()); | 1969 context = UseRegister(instr->context()); |
| 1965 value = UseRegister(instr->value()); | 1970 value = UseRegister(instr->value()); |
| 1966 } | 1971 } |
| 1967 return new (zone()) LStoreContextSlot(context, value); | 1972 LInstruction* result = new (zone()) LStoreContextSlot(context, value); |
| 1973 if (instr->RequiresHoleCheck() && instr->DeoptimizesOnHole()) { |
| 1974 result = AssignEnvironment(result); |
| 1975 } |
| 1976 return result; |
| 1968 } | 1977 } |
| 1969 | 1978 |
| 1970 | 1979 |
| 1971 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { | 1980 LInstruction* LChunkBuilder::DoLoadNamedField(HLoadNamedField* instr) { |
| 1972 LOperand* obj = UseRegisterAtStart(instr->object()); | 1981 LOperand* obj = UseRegisterAtStart(instr->object()); |
| 1973 return DefineAsRegister(new (zone()) LLoadNamedField(obj)); | 1982 return DefineAsRegister(new (zone()) LLoadNamedField(obj)); |
| 1974 } | 1983 } |
| 1975 | 1984 |
| 1976 | 1985 |
| 1977 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( | 1986 LInstruction* LChunkBuilder::DoLoadFunctionPrototype( |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2352 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { | 2361 LInstruction* LChunkBuilder::DoLoadFieldByIndex(HLoadFieldByIndex* instr) { |
| 2353 LOperand* object = UseRegister(instr->object()); | 2362 LOperand* object = UseRegister(instr->object()); |
| 2354 LOperand* index = UseTempRegister(instr->index()); | 2363 LOperand* index = UseTempRegister(instr->index()); |
| 2355 LLoadFieldByIndex* load = new (zone()) LLoadFieldByIndex(object, index); | 2364 LLoadFieldByIndex* load = new (zone()) LLoadFieldByIndex(object, index); |
| 2356 LInstruction* result = DefineSameAsFirst(load); | 2365 LInstruction* result = DefineSameAsFirst(load); |
| 2357 return AssignPointerMap(result); | 2366 return AssignPointerMap(result); |
| 2358 } | 2367 } |
| 2359 | 2368 |
| 2360 } // namespace internal | 2369 } // namespace internal |
| 2361 } // namespace v8 | 2370 } // namespace v8 |
| OLD | NEW |