| Index: src/x64/macro-assembler-x64.cc | 
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc | 
| index dc30a6ca626df5633da45ae97281d8df446b288f..46e2c694e835cd23fe07730bdb3ebde56892205b 100644 | 
| --- a/src/x64/macro-assembler-x64.cc | 
| +++ b/src/x64/macro-assembler-x64.cc | 
| @@ -2295,7 +2295,7 @@ void MacroAssembler::Move(Register dst, Register src) { | 
|  | 
|  | 
| void MacroAssembler::Move(Register dst, Handle<Object> source) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "smi check"); | 
| +  AllowDeferredHandleDereference smi_check; | 
| if (source->IsSmi()) { | 
| Move(dst, Smi::cast(*source)); | 
| } else { | 
| @@ -2306,7 +2306,7 @@ void MacroAssembler::Move(Register dst, Handle<Object> source) { | 
|  | 
|  | 
| void MacroAssembler::Move(const Operand& dst, Handle<Object> source) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "smi check"); | 
| +  AllowDeferredHandleDereference smi_check; | 
| if (source->IsSmi()) { | 
| Move(dst, Smi::cast(*source)); | 
| } else { | 
| @@ -2318,7 +2318,7 @@ void MacroAssembler::Move(const Operand& dst, Handle<Object> source) { | 
|  | 
|  | 
| void MacroAssembler::Cmp(Register dst, Handle<Object> source) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "smi check"); | 
| +  AllowDeferredHandleDereference smi_check; | 
| if (source->IsSmi()) { | 
| Cmp(dst, Smi::cast(*source)); | 
| } else { | 
| @@ -2330,7 +2330,7 @@ void MacroAssembler::Cmp(Register dst, Handle<Object> source) { | 
|  | 
|  | 
| void MacroAssembler::Cmp(const Operand& dst, Handle<Object> source) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "smi check"); | 
| +  AllowDeferredHandleDereference smi_check; | 
| if (source->IsSmi()) { | 
| Cmp(dst, Smi::cast(*source)); | 
| } else { | 
| @@ -2342,7 +2342,7 @@ void MacroAssembler::Cmp(const Operand& dst, Handle<Object> source) { | 
|  | 
|  | 
| void MacroAssembler::Push(Handle<Object> source) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "smi check"); | 
| +  AllowDeferredHandleDereference smi_check; | 
| if (source->IsSmi()) { | 
| Push(Smi::cast(*source)); | 
| } else { | 
| @@ -2355,7 +2355,7 @@ void MacroAssembler::Push(Handle<Object> source) { | 
|  | 
| void MacroAssembler::LoadHeapObject(Register result, | 
| Handle<HeapObject> object) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "using raw address"); | 
| +  AllowDeferredHandleDereference using_raw_address; | 
| if (isolate()->heap()->InNewSpace(*object)) { | 
| Handle<JSGlobalPropertyCell> cell = | 
| isolate()->factory()->NewJSGlobalPropertyCell(object); | 
| @@ -2368,7 +2368,7 @@ void MacroAssembler::LoadHeapObject(Register result, | 
|  | 
|  | 
| void MacroAssembler::CmpHeapObject(Register reg, Handle<HeapObject> object) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "using raw address"); | 
| +  AllowDeferredHandleDereference using_raw_address; | 
| if (isolate()->heap()->InNewSpace(*object)) { | 
| Handle<JSGlobalPropertyCell> cell = | 
| isolate()->factory()->NewJSGlobalPropertyCell(object); | 
| @@ -2381,7 +2381,7 @@ void MacroAssembler::CmpHeapObject(Register reg, Handle<HeapObject> object) { | 
|  | 
|  | 
| void MacroAssembler::PushHeapObject(Handle<HeapObject> object) { | 
| -  ALLOW_HANDLE_DEREF(isolate(), "using raw address"); | 
| +  AllowDeferredHandleDereference using_raw_address; | 
| if (isolate()->heap()->InNewSpace(*object)) { | 
| Handle<JSGlobalPropertyCell> cell = | 
| isolate()->factory()->NewJSGlobalPropertyCell(object); | 
| @@ -2397,7 +2397,7 @@ void MacroAssembler::PushHeapObject(Handle<HeapObject> object) { | 
| void MacroAssembler::LoadGlobalCell(Register dst, | 
| Handle<JSGlobalPropertyCell> cell) { | 
| if (dst.is(rax)) { | 
| -    ALLOW_HANDLE_DEREF(isolate(), "embedding raw address"); | 
| +    AllowDeferredHandleDereference embedding_raw_address; | 
| load_rax(cell.location(), RelocInfo::GLOBAL_PROPERTY_CELL); | 
| } else { | 
| movq(dst, cell, RelocInfo::GLOBAL_PROPERTY_CELL); | 
|  |