OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 #ifndef VM_ASSEMBLER_IA32_H_ | 5 #ifndef VM_ASSEMBLER_IA32_H_ |
6 #define VM_ASSEMBLER_IA32_H_ | 6 #define VM_ASSEMBLER_IA32_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ |
9 #error Do not include assembler_ia32.h directly; use assembler.h instead. | 9 #error Do not include assembler_ia32.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 void pushl(Register reg); | 322 void pushl(Register reg); |
323 void pushl(const Address& address); | 323 void pushl(const Address& address); |
324 void pushl(const Immediate& imm); | 324 void pushl(const Immediate& imm); |
325 | 325 |
326 void popl(Register reg); | 326 void popl(Register reg); |
327 void popl(const Address& address); | 327 void popl(const Address& address); |
328 | 328 |
329 void pushal(); | 329 void pushal(); |
330 void popal(); | 330 void popal(); |
331 | 331 |
| 332 void setcc(Condition condition, ByteRegister dst); |
| 333 |
332 void movl(Register dst, const Immediate& src); | 334 void movl(Register dst, const Immediate& src); |
333 void movl(Register dst, Register src); | 335 void movl(Register dst, Register src); |
334 | 336 |
335 void movl(Register dst, const Address& src); | 337 void movl(Register dst, const Address& src); |
336 void movl(const Address& dst, Register src); | 338 void movl(const Address& dst, Register src); |
337 void movl(const Address& dst, const Immediate& imm); | 339 void movl(const Address& dst, const Immediate& imm); |
338 | 340 |
339 void movzxb(Register dst, ByteRegister src); | 341 void movzxb(Register dst, ByteRegister src); |
340 void movzxb(Register dst, const Address& src); | 342 void movzxb(Register dst, const Address& src); |
341 void movsxb(Register dst, ByteRegister src); | 343 void movsxb(Register dst, ByteRegister src); |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 | 600 |
599 // Issues a move instruction if 'to' is not the same as 'from'. | 601 // Issues a move instruction if 'to' is not the same as 'from'. |
600 void MoveRegister(Register to, Register from); | 602 void MoveRegister(Register to, Register from); |
601 void PopRegister(Register r); | 603 void PopRegister(Register r); |
602 | 604 |
603 void AddImmediate(Register reg, const Immediate& imm); | 605 void AddImmediate(Register reg, const Immediate& imm); |
604 | 606 |
605 void Drop(intptr_t stack_elements); | 607 void Drop(intptr_t stack_elements); |
606 | 608 |
607 void LoadObject(Register dst, const Object& object); | 609 void LoadObject(Register dst, const Object& object); |
| 610 |
608 void PushObject(const Object& object); | 611 void PushObject(const Object& object); |
609 void CompareObject(Register reg, const Object& object); | 612 void CompareObject(Register reg, const Object& object); |
610 void LoadDoubleConstant(XmmRegister dst, double value); | 613 void LoadDoubleConstant(XmmRegister dst, double value); |
611 | 614 |
612 void StoreIntoObject(Register object, // Object we are storing into. | 615 void StoreIntoObject(Register object, // Object we are storing into. |
613 const Address& dest, // Where we are storing into. | 616 const Address& dest, // Where we are storing into. |
614 Register value, // Value we are storing. | 617 Register value, // Value we are storing. |
615 bool can_value_be_smi = true); | 618 bool can_value_be_smi = true); |
616 | 619 |
617 void StoreIntoObjectNoBarrier(Register object, | 620 void StoreIntoObjectNoBarrier(Register object, |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 } | 830 } |
828 | 831 |
829 | 832 |
830 inline void Assembler::EmitOperandSizeOverride() { | 833 inline void Assembler::EmitOperandSizeOverride() { |
831 EmitUint8(0x66); | 834 EmitUint8(0x66); |
832 } | 835 } |
833 | 836 |
834 } // namespace dart | 837 } // namespace dart |
835 | 838 |
836 #endif // VM_ASSEMBLER_IA32_H_ | 839 #endif // VM_ASSEMBLER_IA32_H_ |
OLD | NEW |