| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 0c1a3781a4f40c94b7059420b7462a5e437f8ba2..5e11a36cb1c41c3b33dae3921828d9615eb20ee5 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -3950,8 +3950,9 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
|
| hinstr->value()->representation().IsInteger32()) {
|
| ASSERT(hinstr->store_mode() == STORE_TO_INITIALIZED_ENTRY);
|
| #ifdef DEBUG
|
| - __ movq(kScratchRegister, FieldOperand(write_register, offset));
|
| - __ AssertSmi(kScratchRegister);
|
| + Register scratch = kScratchRegister;
|
| + __ Load(scratch, FieldOperand(write_register, offset), representation);
|
| + __ AssertSmi(scratch);
|
| #endif
|
| // Store int value directly to upper half of the smi.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| @@ -4206,6 +4207,17 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) {
|
| if (representation.IsInteger32()) {
|
| ASSERT(hinstr->store_mode() == STORE_TO_INITIALIZED_ENTRY);
|
| ASSERT(hinstr->elements_kind() == FAST_SMI_ELEMENTS);
|
| +#ifdef DEBUG
|
| + Register scratch = kScratchRegister;
|
| + __ Load(scratch,
|
| + BuildFastArrayOperand(instr->elements(),
|
| + key,
|
| + FAST_ELEMENTS,
|
| + offset,
|
| + instr->additional_index()),
|
| + Representation::Smi());
|
| + __ AssertSmi(scratch);
|
| +#endif
|
| // Store int value directly to upper half of the smi.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32);
|
|
|