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 690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 void SmiUntag(Register reg) { | 701 void SmiUntag(Register reg) { |
702 sarl(reg, Immediate(kSmiTagSize)); | 702 sarl(reg, Immediate(kSmiTagSize)); |
703 } | 703 } |
704 | 704 |
705 intptr_t PreferredLoopAlignment() { return 16; } | 705 intptr_t PreferredLoopAlignment() { return 16; } |
706 void Align(intptr_t alignment, intptr_t offset); | 706 void Align(intptr_t alignment, intptr_t offset); |
707 void Bind(Label* label); | 707 void Bind(Label* label); |
708 | 708 |
709 intptr_t CodeSize() const { return buffer_.Size(); } | 709 intptr_t CodeSize() const { return buffer_.Size(); } |
710 intptr_t prologue_offset() const { return prologue_offset_; } | 710 intptr_t prologue_offset() const { return prologue_offset_; } |
| 711 |
| 712 // Count the fixups that produce a pointer offset, without processing |
| 713 // the fixups. |
| 714 intptr_t CountPointerOffsets() const { |
| 715 return buffer_.CountPointerOffsets(); |
| 716 } |
711 const ZoneGrowableArray<intptr_t>& GetPointerOffsets() const { | 717 const ZoneGrowableArray<intptr_t>& GetPointerOffsets() const { |
712 return buffer_.pointer_offsets(); | 718 return buffer_.pointer_offsets(); |
713 } | 719 } |
714 const GrowableObjectArray& object_pool() const { return object_pool_; } | 720 const GrowableObjectArray& object_pool() const { return object_pool_; } |
715 | 721 |
716 void FinalizeInstructions(const MemoryRegion& region) { | 722 void FinalizeInstructions(const MemoryRegion& region) { |
717 buffer_.FinalizeInstructions(region); | 723 buffer_.FinalizeInstructions(region); |
718 } | 724 } |
719 | 725 |
720 // Set up a Dart frame on entry with a frame pointer and PC information to | 726 // Set up a Dart frame on entry with a frame pointer and PC information to |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
878 } | 884 } |
879 | 885 |
880 | 886 |
881 inline void Assembler::EmitOperandSizeOverride() { | 887 inline void Assembler::EmitOperandSizeOverride() { |
882 EmitUint8(0x66); | 888 EmitUint8(0x66); |
883 } | 889 } |
884 | 890 |
885 } // namespace dart | 891 } // namespace dart |
886 | 892 |
887 #endif // VM_ASSEMBLER_IA32_H_ | 893 #endif // VM_ASSEMBLER_IA32_H_ |
OLD | NEW |