Chromium Code Reviews| Index: src/x64/lithium-codegen-x64.cc |
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
| index 9c12a5102ca878c772a3f730a15f393ac8a18832..3026349751709a82885b0ccd35e0337e84d76ea7 100644 |
| --- a/src/x64/lithium-codegen-x64.cc |
| +++ b/src/x64/lithium-codegen-x64.cc |
| @@ -2781,6 +2781,11 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
| Representation representation = access.representation(); |
| if (representation.IsSmi() && |
| instr->hydrogen()->representation().IsInteger32()) { |
| + if (FLAG_debug_code) { |
|
Igor Sheludko
2014/02/14 15:16:31
I think it is better to use #ifdef DEBUG as we did
ulan
2014/02/14 15:22:39
Done.
|
| + Register scratch = kScratchRegister; |
| + __ Load(scratch, FieldOperand(object, offset), representation); |
| + __ AssertSmi(scratch); |
| + } |
| // Read int value directly from upper half of the smi. |
| STATIC_ASSERT(kSmiTag == 0); |
| STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32); |
| @@ -3026,6 +3031,17 @@ void LCodeGen::DoLoadKeyedFixedArray(LLoadKeyed* instr) { |
| if (representation.IsInteger32() && |
| hinstr->elements_kind() == FAST_SMI_ELEMENTS) { |
| ASSERT(!requires_hole_check); |
| + if (FLAG_debug_code) { |
|
Igor Sheludko
2014/02/14 15:16:31
Same as above.
ulan
2014/02/14 15:22:39
Done.
|
| + Register scratch = kScratchRegister; |
| + __ Load(scratch, |
| + BuildFastArrayOperand(instr->elements(), |
| + key, |
| + FAST_ELEMENTS, |
| + offset, |
| + instr->additional_index()), |
| + Representation::Smi()); |
| + __ AssertSmi(scratch); |
| + } |
| // Read int value directly from upper half of the smi. |
| STATIC_ASSERT(kSmiTag == 0); |
| STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32); |