| Index: src/full-codegen/mips64/full-codegen-mips64.cc
 | 
| diff --git a/src/full-codegen/mips64/full-codegen-mips64.cc b/src/full-codegen/mips64/full-codegen-mips64.cc
 | 
| index b75965e31d2f83facf6d22fd9b8597799a9e9b6d..03133e150ff7e55819c50cb40f9d7851d5a9e506 100644
 | 
| --- a/src/full-codegen/mips64/full-codegen-mips64.cc
 | 
| +++ b/src/full-codegen/mips64/full-codegen-mips64.cc
 | 
| @@ -3428,6 +3428,45 @@
 | 
|    Split(eq, a1, Operand(JS_DATE_TYPE), if_true, if_false, fall_through);
 | 
|  
 | 
|    context()->Plug(if_true, if_false);
 | 
| +}
 | 
| +
 | 
| +
 | 
| +void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
 | 
| +  ZoneList<Expression*>* args = expr->arguments();
 | 
| +  DCHECK(args->length() == 2);
 | 
| +  DCHECK_NOT_NULL(args->at(1)->AsLiteral());
 | 
| +  Smi* index = Smi::cast(*(args->at(1)->AsLiteral()->value()));
 | 
| +
 | 
| +  VisitForAccumulatorValue(args->at(0));  // Load the object.
 | 
| +
 | 
| +  Register object = v0;
 | 
| +  Register result = v0;
 | 
| +  Register scratch0 = t1;
 | 
| +  Register scratch1 = a1;
 | 
| +
 | 
| +  if (index->value() == 0) {
 | 
| +    __ ld(result, FieldMemOperand(object, JSDate::kValueOffset));
 | 
| +  } else {
 | 
| +    Label runtime, done;
 | 
| +    if (index->value() < JSDate::kFirstUncachedField) {
 | 
| +      ExternalReference stamp = ExternalReference::date_cache_stamp(isolate());
 | 
| +      __ li(scratch1, Operand(stamp));
 | 
| +      __ ld(scratch1, MemOperand(scratch1));
 | 
| +      __ ld(scratch0, FieldMemOperand(object, JSDate::kCacheStampOffset));
 | 
| +      __ Branch(&runtime, ne, scratch1, Operand(scratch0));
 | 
| +      __ ld(result, FieldMemOperand(object, JSDate::kValueOffset +
 | 
| +                                            kPointerSize * index->value()));
 | 
| +      __ jmp(&done);
 | 
| +    }
 | 
| +    __ bind(&runtime);
 | 
| +    __ PrepareCallCFunction(2, scratch1);
 | 
| +    __ li(a1, Operand(index));
 | 
| +    __ Move(a0, object);
 | 
| +    __ CallCFunction(ExternalReference::get_date_field_function(isolate()), 2);
 | 
| +    __ bind(&done);
 | 
| +  }
 | 
| +
 | 
| +  context()->Plug(result);
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |