| 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 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 | 672 |
| 673 void StoreIntoObjectNoBarrier(Register object, | 673 void StoreIntoObjectNoBarrier(Register object, |
| 674 const Address& dest, | 674 const Address& dest, |
| 675 Register value); | 675 Register value); |
| 676 void StoreIntoObjectNoBarrier(Register object, | 676 void StoreIntoObjectNoBarrier(Register object, |
| 677 const Address& dest, | 677 const Address& dest, |
| 678 const Object& value); | 678 const Object& value); |
| 679 | 679 |
| 680 // Stores a Smi value into a heap object field that always contains a Smi. | 680 // Stores a Smi value into a heap object field that always contains a Smi. |
| 681 void StoreIntoSmiField(const Address& dest, Register value); | 681 void StoreIntoSmiField(const Address& dest, Register value); |
| 682 void ZeroSmiField(const Address& dest); |
| 682 // Increments a Smi field. Leaves flags in same state as an 'addl'. | 683 // Increments a Smi field. Leaves flags in same state as an 'addl'. |
| 683 void IncrementSmiField(const Address& dest, int32_t increment); | 684 void IncrementSmiField(const Address& dest, int32_t increment); |
| 684 | 685 |
| 685 void DoubleNegate(XmmRegister d); | 686 void DoubleNegate(XmmRegister d); |
| 686 void FloatNegate(XmmRegister f); | 687 void FloatNegate(XmmRegister f); |
| 687 | 688 |
| 688 void DoubleAbs(XmmRegister reg); | 689 void DoubleAbs(XmmRegister reg); |
| 689 | 690 |
| 690 void LockCmpxchgl(const Address& address, Register reg) { | 691 void LockCmpxchgl(const Address& address, Register reg) { |
| 691 lock(); | 692 lock(); |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 921 void EmitGenericShift(int rm, Register reg, const Immediate& imm); | 922 void EmitGenericShift(int rm, Register reg, const Immediate& imm); |
| 922 void EmitGenericShift(int rm, const Operand& operand, Register shifter); | 923 void EmitGenericShift(int rm, const Operand& operand, Register shifter); |
| 923 | 924 |
| 924 void StoreIntoObjectFilter(Register object, Register value, Label* no_update); | 925 void StoreIntoObjectFilter(Register object, Register value, Label* no_update); |
| 925 | 926 |
| 926 // Shorter filtering sequence that assumes that value is not a smi. | 927 // Shorter filtering sequence that assumes that value is not a smi. |
| 927 void StoreIntoObjectFilterNoSmi(Register object, | 928 void StoreIntoObjectFilterNoSmi(Register object, |
| 928 Register value, | 929 Register value, |
| 929 Label* no_update); | 930 Label* no_update); |
| 930 | 931 |
| 932 // Private helpers for write barrier verification. |
| 933 void VerifiedWrite(const Address& dest, Register value); |
| 934 void UnverifiedStoreOldObject(const Address& dest, const Object& value); |
| 935 |
| 931 int32_t jit_cookie(); | 936 int32_t jit_cookie(); |
| 932 | 937 |
| 933 AssemblerBuffer buffer_; | 938 AssemblerBuffer buffer_; |
| 934 GrowableObjectArray& object_pool_; // Object pool is not used on ia32. | 939 GrowableObjectArray& object_pool_; // Object pool is not used on ia32. |
| 935 intptr_t prologue_offset_; | 940 intptr_t prologue_offset_; |
| 936 int32_t jit_cookie_; | 941 int32_t jit_cookie_; |
| 937 GrowableArray<CodeComment*> comments_; | 942 GrowableArray<CodeComment*> comments_; |
| 938 | 943 |
| 939 DISALLOW_ALLOCATION(); | 944 DISALLOW_ALLOCATION(); |
| 940 DISALLOW_COPY_AND_ASSIGN(Assembler); | 945 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 967 } | 972 } |
| 968 | 973 |
| 969 | 974 |
| 970 inline void Assembler::EmitOperandSizeOverride() { | 975 inline void Assembler::EmitOperandSizeOverride() { |
| 971 EmitUint8(0x66); | 976 EmitUint8(0x66); |
| 972 } | 977 } |
| 973 | 978 |
| 974 } // namespace dart | 979 } // namespace dart |
| 975 | 980 |
| 976 #endif // VM_ASSEMBLER_IA32_H_ | 981 #endif // VM_ASSEMBLER_IA32_H_ |
| OLD | NEW |