| Index: runtime/vm/assembler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_ia32.cc (revision 40703)
|
| +++ runtime/vm/assembler_ia32.cc (working copy)
|
| @@ -2736,27 +2736,22 @@
|
| }
|
|
|
|
|
| -void Assembler::LoadClassById(Register result, Register class_id) {
|
| +void Assembler::LoadClassById(Register result,
|
| + Register class_id,
|
| + Isolate* isolate) {
|
| ASSERT(result != class_id);
|
| - movl(result, FieldAddress(CTX, Context::isolate_offset()));
|
| - const intptr_t table_offset_in_isolate =
|
| - Isolate::class_table_offset() + ClassTable::table_offset();
|
| - movl(result, Address(result, table_offset_in_isolate));
|
| + movl(result, Address::Absolute(isolate->ClassTableAddress()));
|
| movl(result, Address(result, class_id, TIMES_4, 0));
|
| }
|
|
|
|
|
| void Assembler::LoadClass(Register result,
|
| Register object,
|
| - Register scratch) {
|
| + Register scratch,
|
| + Isolate* isolate) {
|
| ASSERT(scratch != result);
|
| LoadClassId(scratch, object);
|
| -
|
| - movl(result, FieldAddress(CTX, Context::isolate_offset()));
|
| - const intptr_t table_offset_in_isolate =
|
| - Isolate::class_table_offset() + ClassTable::table_offset();
|
| - movl(result, Address(result, table_offset_in_isolate));
|
| - movl(result, Address(result, scratch, TIMES_4, 0));
|
| + LoadClassById(result, scratch, isolate);
|
| }
|
|
|
|
|
|
|