| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" | 5 #include "vm/globals.h" |
| 6 #if defined(TARGET_ARCH_IA32) | 6 #if defined(TARGET_ARCH_IA32) |
| 7 | 7 |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/heap.h" | 9 #include "vm/heap.h" |
| 10 #include "vm/memory_region.h" | 10 #include "vm/memory_region.h" |
| (...skipping 1213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1224 | 1224 |
| 1225 void Assembler::LoadObject(Register dst, const Object& object) { | 1225 void Assembler::LoadObject(Register dst, const Object& object) { |
| 1226 ASSERT(object.IsZoneHandle()); | 1226 ASSERT(object.IsZoneHandle()); |
| 1227 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 1227 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 1228 EmitUint8(0xB8 + dst); | 1228 EmitUint8(0xB8 + dst); |
| 1229 buffer_.EmitObject(object); | 1229 buffer_.EmitObject(object); |
| 1230 } | 1230 } |
| 1231 | 1231 |
| 1232 | 1232 |
| 1233 void Assembler::PushObject(const Object& object) { | 1233 void Assembler::PushObject(const Object& object) { |
| 1234 ASSERT(object.IsZoneHandle()); |
| 1234 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 1235 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 1235 EmitUint8(0x68); | 1236 EmitUint8(0x68); |
| 1236 buffer_.EmitObject(object); | 1237 buffer_.EmitObject(object); |
| 1237 } | 1238 } |
| 1238 | 1239 |
| 1239 | 1240 |
| 1240 void Assembler::CompareObject(Register reg, const Object& object) { | 1241 void Assembler::CompareObject(Register reg, const Object& object) { |
| 1242 ASSERT(object.IsZoneHandle()); |
| 1241 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 1243 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 1242 if (reg == EAX) { | 1244 if (reg == EAX) { |
| 1243 EmitUint8(0x05 + (7 << 3)); | 1245 EmitUint8(0x05 + (7 << 3)); |
| 1244 buffer_.EmitObject(object); | 1246 buffer_.EmitObject(object); |
| 1245 } else { | 1247 } else { |
| 1246 EmitUint8(0x81); | 1248 EmitUint8(0x81); |
| 1247 EmitOperand(7, Operand(reg)); | 1249 EmitOperand(7, Operand(reg)); |
| 1248 buffer_.EmitObject(object); | 1250 buffer_.EmitObject(object); |
| 1249 } | 1251 } |
| 1250 } | 1252 } |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 Register shifter) { | 1456 Register shifter) { |
| 1455 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 1457 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 1456 ASSERT(shifter == ECX); | 1458 ASSERT(shifter == ECX); |
| 1457 EmitUint8(0xD3); | 1459 EmitUint8(0xD3); |
| 1458 EmitOperand(rm, Operand(operand)); | 1460 EmitOperand(rm, Operand(operand)); |
| 1459 } | 1461 } |
| 1460 | 1462 |
| 1461 } // namespace dart | 1463 } // namespace dart |
| 1462 | 1464 |
| 1463 #endif // defined TARGET_ARCH_IA32 | 1465 #endif // defined TARGET_ARCH_IA32 |
| OLD | NEW |