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 RUNTIME_VM_ASSEMBLER_X64_H_ | 5 #ifndef RUNTIME_VM_ASSEMBLER_X64_H_ |
6 #define RUNTIME_VM_ASSEMBLER_X64_H_ | 6 #define RUNTIME_VM_ASSEMBLER_X64_H_ |
7 | 7 |
8 #ifndef RUNTIME_VM_ASSEMBLER_H_ | 8 #ifndef RUNTIME_VM_ASSEMBLER_H_ |
9 #error Do not include assembler_x64.h directly; use assembler.h instead. | 9 #error Do not include assembler_x64.h directly; use assembler.h instead. |
10 #endif | 10 #endif |
(...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 */ | 845 */ |
846 void SmiTag(Register reg) { addq(reg, reg); } | 846 void SmiTag(Register reg) { addq(reg, reg); } |
847 | 847 |
848 void SmiUntag(Register reg) { sarq(reg, Immediate(kSmiTagSize)); } | 848 void SmiUntag(Register reg) { sarq(reg, Immediate(kSmiTagSize)); } |
849 | 849 |
850 void BranchIfNotSmi(Register reg, Label* label) { | 850 void BranchIfNotSmi(Register reg, Label* label) { |
851 testq(reg, Immediate(kSmiTagMask)); | 851 testq(reg, Immediate(kSmiTagMask)); |
852 j(NOT_ZERO, label); | 852 j(NOT_ZERO, label); |
853 } | 853 } |
854 | 854 |
| 855 void BranchIfSmi(Register reg, Label* label) { |
| 856 testq(reg, Immediate(kSmiTagMask)); |
| 857 j(ZERO, label); |
| 858 } |
| 859 |
855 void Align(int alignment, intptr_t offset); | 860 void Align(int alignment, intptr_t offset); |
856 void Bind(Label* label); | 861 void Bind(Label* label); |
857 void Jump(Label* label) { jmp(label); } | 862 void Jump(Label* label) { jmp(label); } |
858 | 863 |
859 void Comment(const char* format, ...) PRINTF_ATTRIBUTE(2, 3); | 864 void Comment(const char* format, ...) PRINTF_ATTRIBUTE(2, 3); |
860 static bool EmittingComments(); | 865 static bool EmittingComments(); |
861 | 866 |
862 const Code::Comments& GetCodeComments() const; | 867 const Code::Comments& GetCodeComments() const; |
863 | 868 |
864 // Address of code at offset. | 869 // Address of code at offset. |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1144 } | 1149 } |
1145 | 1150 |
1146 | 1151 |
1147 inline void Assembler::EmitOperandSizeOverride() { | 1152 inline void Assembler::EmitOperandSizeOverride() { |
1148 EmitUint8(0x66); | 1153 EmitUint8(0x66); |
1149 } | 1154 } |
1150 | 1155 |
1151 } // namespace dart | 1156 } // namespace dart |
1152 | 1157 |
1153 #endif // RUNTIME_VM_ASSEMBLER_X64_H_ | 1158 #endif // RUNTIME_VM_ASSEMBLER_X64_H_ |
OLD | NEW |