Chromium Code Reviews| Index: src/ia32/lithium-codegen-ia32.cc |
| diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
| index fb3c05ebab4f956655196bc728be25ef3d9038ea..e578fbf7d49e05d2b8ae204f0c0ac42625e4c470 100644 |
| --- a/src/ia32/lithium-codegen-ia32.cc |
| +++ b/src/ia32/lithium-codegen-ia32.cc |
| @@ -541,6 +541,10 @@ int32_t LCodeGen::ToInteger32(LConstantOperand* op) const { |
| int32_t LCodeGen::ToRepresentation(LConstantOperand* op, |
| const Representation& r) const { |
| HConstant* constant = chunk_->LookupConstant(op); |
| + if (r.IsExternal()) { |
| + return reinterpret_cast<int32_t>( |
| + constant->ExternalReferenceValue().address()); |
| + } |
| int32_t value = constant->Integer32Value(); |
| if (r.IsInteger32()) return value; |
| DCHECK(r.IsSmiOrTagged()); |
| @@ -4087,9 +4091,10 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
| if (operand_value->IsRegister()) { |
| Register value = ToRegister(operand_value); |
| __ Store(value, operand, representation); |
| - } else if (representation.IsInteger32()) { |
| + } else if (representation.IsInteger32() || representation.IsExternal()) { |
| Immediate immediate = ToImmediate(operand_value, representation); |
| DCHECK(!instr->hydrogen()->NeedsWriteBarrier()); |
| + Comment(";;; LOL Store"); |
|
Jarin
2015/07/22 09:00:20
What is LOL?
jochen (gone - plz use gerrit)
2015/07/22 09:08:13
I, uhm, just wanted to check whether you actually
|
| __ mov(operand, immediate); |
| } else { |
| Handle<Object> handle_value = ToHandle(operand_value); |