| Index: runtime/vm/intrinsifier_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/intrinsifier_ia32.cc (revision 5985)
|
| +++ runtime/vm/intrinsifier_ia32.cc (working copy)
|
| @@ -1053,10 +1053,11 @@
|
| const Class& double_class = Class::ZoneHandle(
|
| Isolate::Current()->object_store()->double_class());
|
| __ LoadObject(EBX, double_class);
|
| + Label alloc_failed;
|
| AssemblerMacros::TryAllocate(assembler,
|
| double_class,
|
| EBX, // Class register.
|
| - &fall_through,
|
| + &alloc_failed,
|
| EAX); // Result register.
|
| __ fstpl(FieldAddress(EAX, Double::value_offset()));
|
| __ ret();
|
| @@ -1068,6 +1069,10 @@
|
| __ popl(EAX);
|
| __ jmp(&double_op);
|
|
|
| + __ Bind(&alloc_failed);
|
| + __ ffree(0);
|
| + __ fincstp();
|
| +
|
| __ Bind(&fall_through);
|
| }
|
|
|
|
|