Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/arm64/lithium-codegen-arm64.h" | 9 #include "src/arm64/lithium-codegen-arm64.h" |
| 10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
| (...skipping 1706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1717 new(zone()) LLoadKeyedFixedDouble(elements, key, temp); | 1717 new(zone()) LLoadKeyedFixedDouble(elements, key, temp); |
| 1718 return instr->RequiresHoleCheck() | 1718 return instr->RequiresHoleCheck() |
| 1719 ? AssignEnvironment(DefineAsRegister(result)) | 1719 ? AssignEnvironment(DefineAsRegister(result)) |
| 1720 : DefineAsRegister(result); | 1720 : DefineAsRegister(result); |
| 1721 } else { | 1721 } else { |
| 1722 DCHECK(instr->representation().IsSmiOrTagged() || | 1722 DCHECK(instr->representation().IsSmiOrTagged() || |
| 1723 instr->representation().IsInteger32()); | 1723 instr->representation().IsInteger32()); |
| 1724 LOperand* temp = instr->key()->IsConstant() ? NULL : TempRegister(); | 1724 LOperand* temp = instr->key()->IsConstant() ? NULL : TempRegister(); |
| 1725 LLoadKeyedFixed* result = | 1725 LLoadKeyedFixed* result = |
| 1726 new(zone()) LLoadKeyedFixed(elements, key, temp); | 1726 new(zone()) LLoadKeyedFixed(elements, key, temp); |
| 1727 return instr->RequiresHoleCheck() | 1727 return (instr->RequiresHoleCheck() || |
|
Jakob Kummerow
2015/04/23 13:40:00
Suggestion: I'd model this after the case below (l
mvstanton
2015/04/27 07:57:12
Done, and I made the double case above follow the
| |
| 1728 ? AssignEnvironment(DefineAsRegister(result)) | 1728 (instr->hole_mode() == CONVERT_HOLE_TO_UNDEFINED && |
| 1729 : DefineAsRegister(result); | 1729 info()->IsStub())) |
| 1730 ? AssignEnvironment(DefineAsRegister(result)) | |
| 1731 : DefineAsRegister(result); | |
| 1730 } | 1732 } |
| 1731 } else { | 1733 } else { |
| 1732 DCHECK((instr->representation().IsInteger32() && | 1734 DCHECK((instr->representation().IsInteger32() && |
| 1733 !IsDoubleOrFloatElementsKind(instr->elements_kind())) || | 1735 !IsDoubleOrFloatElementsKind(instr->elements_kind())) || |
| 1734 (instr->representation().IsDouble() && | 1736 (instr->representation().IsDouble() && |
| 1735 IsDoubleOrFloatElementsKind(instr->elements_kind()))); | 1737 IsDoubleOrFloatElementsKind(instr->elements_kind()))); |
| 1736 | 1738 |
| 1737 LOperand* temp = instr->key()->IsConstant() ? NULL : TempRegister(); | 1739 LOperand* temp = instr->key()->IsConstant() ? NULL : TempRegister(); |
| 1738 LInstruction* result = DefineAsRegister( | 1740 LInstruction* result = DefineAsRegister( |
| 1739 new(zone()) LLoadKeyedExternal(elements, key, temp)); | 1741 new(zone()) LLoadKeyedExternal(elements, key, temp)); |
| (...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2749 HAllocateBlockContext* instr) { | 2751 HAllocateBlockContext* instr) { |
| 2750 LOperand* context = UseFixed(instr->context(), cp); | 2752 LOperand* context = UseFixed(instr->context(), cp); |
| 2751 LOperand* function = UseRegisterAtStart(instr->function()); | 2753 LOperand* function = UseRegisterAtStart(instr->function()); |
| 2752 LAllocateBlockContext* result = | 2754 LAllocateBlockContext* result = |
| 2753 new(zone()) LAllocateBlockContext(context, function); | 2755 new(zone()) LAllocateBlockContext(context, function); |
| 2754 return MarkAsCall(DefineFixed(result, cp), instr); | 2756 return MarkAsCall(DefineFixed(result, cp), instr); |
| 2755 } | 2757 } |
| 2756 | 2758 |
| 2757 | 2759 |
| 2758 } } // namespace v8::internal | 2760 } } // namespace v8::internal |
| OLD | NEW |