| Index: runtime/vm/intermediate_language_x64.cc
|
| diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
|
| index 006c2d1ecab36c04dc2cebd61ebe9dfdb46b969a..5c670f819ef0647c959179c547444ac164984b22 100644
|
| --- a/runtime/vm/intermediate_language_x64.cc
|
| +++ b/runtime/vm/intermediate_language_x64.cc
|
| @@ -1570,6 +1570,11 @@ void GuardFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| // list length here, without this check the list length could change
|
| // without triggering a deoptimization.
|
| Label check_array, length_compared, no_fixed_length;
|
| + // If length is negative the length guard is either disabled or
|
| + // has not been initialized, either way it is safe to skip the
|
| + // length check.
|
| + __ cmpq(field_length_operand, Immediate(Smi::RawValue(0)));
|
| + __ j(LESS, &skip_length_check);
|
| __ cmpq(value_cid_reg, Immediate(kNullCid));
|
| __ j(EQUAL, &no_fixed_length, Assembler::kNearJump);
|
| // Check for typed data array.
|
|
|