Chromium Code Reviews| Index: runtime/vm/intrinsifier_ia32.cc |
| diff --git a/runtime/vm/intrinsifier_ia32.cc b/runtime/vm/intrinsifier_ia32.cc |
| index 2e180900fb31b2e7d1576c3a7f5e29520f9f566e..76e37c1983c68eed3883fbc1256f31d3b3c49d8e 100644 |
| --- a/runtime/vm/intrinsifier_ia32.cc |
| +++ b/runtime/vm/intrinsifier_ia32.cc |
| @@ -89,14 +89,8 @@ bool Intrinsifier::ObjectArray_Allocate(Assembler* assembler) { |
| __ movl(FieldAddress(EAX, Array::tags_offset()), EDI); // Tags. |
| } |
| - // Store class value for array. |
| // EAX: new object start as a tagged pointer. |
| // EBX: new object end address. |
| - __ movl(EDI, FieldAddress(CTX, Context::isolate_offset())); |
| - __ movl(EDI, Address(EDI, Isolate::object_store_offset())); |
| - __ movl(EDI, Address(EDI, ObjectStore::array_class_offset())); |
| - __ StoreIntoObject(EAX, FieldAddress(EAX, Array::class_offset()), EDI); |
| - |
| // Store the type argument field. |
| __ movl(EDI, Address(ESP, kTypeArgumentsOffset)); // type argument. |
| __ StoreIntoObject(EAX, |
| @@ -303,15 +297,7 @@ bool Intrinsifier::GArray_Allocate(Assembler* assembler) { |
| FieldAddress(EAX, GrowableObjectArray::data_offset()), |
| EBX); |
| - // Store class value for the growable array object. |
| // EAX: new growable array object start as a tagged pointer. |
| - __ movl(EBX, FieldAddress(CTX, Context::isolate_offset())); |
| - __ movl(EBX, Address(EBX, Isolate::object_store_offset())); |
| - __ movl(EBX, Address(EBX, ObjectStore::growable_object_array_class_offset())); |
| - __ StoreIntoObject(EAX, |
| - FieldAddress(EAX, GrowableObjectArray::class_offset()), |
| - EBX); |
| - |
| // Store the type argument field in the growable array object. |
| __ movl(EBX, Address(ESP, kTypeArgumentsOffset)); // type argument. |
| __ StoreIntoObject(EAX, |
| @@ -658,10 +644,8 @@ bool Intrinsifier::Integer_shl(Assembler* assembler) { |
| // Result in EDI (high) and EBX (low). |
| const Class& mint_class = Class::ZoneHandle( |
|
Ivan Posva
2012/06/06 13:42:11
Does still need to be a ZoneHandle?
|
| Isolate::Current()->object_store()->mint_class()); |
| - __ LoadObject(ECX, mint_class); |
| AssemblerMacros::TryAllocate(assembler, |
| mint_class, |
| - ECX, // Class register. |
| &fall_through, |
| EAX); // Result register. |
| // EBX and EDI are not objects but integer values. |
| @@ -918,10 +902,8 @@ static bool DoubleArithmeticOperations(Assembler* assembler, Token::Kind kind) { |
| } |
| const Class& double_class = Class::ZoneHandle( |
|
Ivan Posva
2012/06/06 13:42:11
Ditto here and many other places.
|
| Isolate::Current()->object_store()->double_class()); |
| - __ LoadObject(EBX, double_class); |
| AssemblerMacros::TryAllocate(assembler, |
| double_class, |
| - EBX, // Class register. |
| &fall_through, |
| EAX); // Result register. |
| __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0); |
| @@ -966,10 +948,8 @@ bool Intrinsifier::Double_mulFromInteger(Assembler* assembler) { |
| __ mulsd(XMM0, XMM1); |
| const Class& double_class = Class::ZoneHandle( |
| Isolate::Current()->object_store()->double_class()); |
| - __ LoadObject(EBX, double_class); |
| AssemblerMacros::TryAllocate(assembler, |
| double_class, |
| - EBX, // Class register. |
| &fall_through, |
| EAX); // Result register. |
| __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0); |
| @@ -989,10 +969,8 @@ bool Intrinsifier::Double_fromInteger(Assembler* assembler) { |
| __ cvtsi2sd(XMM0, EAX); |
| const Class& double_class = Class::ZoneHandle( |
| Isolate::Current()->object_store()->double_class()); |
| - __ LoadObject(EBX, double_class); |
| AssemblerMacros::TryAllocate(assembler, |
| double_class, |
| - EBX, // Class register. |
| &fall_through, |
| EAX); // Result register. |
| __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0); |
| @@ -1056,10 +1034,8 @@ bool Intrinsifier::Math_sqrt(Assembler* assembler) { |
| __ sqrtsd(XMM0, XMM1); |
| const Class& double_class = Class::ZoneHandle( |
| Isolate::Current()->object_store()->double_class()); |
| - __ LoadObject(EBX, double_class); |
| AssemblerMacros::TryAllocate(assembler, |
| double_class, |
| - EBX, // Class register. |
| &fall_through, |
| EAX); // Result register. |
| __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0); |
| @@ -1094,11 +1070,9 @@ static void EmitTrigonometric(Assembler* assembler, |
| } |
| 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. |
| &alloc_failed, |
| EAX); // Result register. |
| __ fstpl(FieldAddress(EAX, Double::value_offset())); |