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_X64_H_ | 5 #ifndef VM_ASSEMBLER_X64_H_ |
6 #define VM_ASSEMBLER_X64_H_ | 6 #define VM_ASSEMBLER_X64_H_ |
7 | 7 |
8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef 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 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 | 519 |
520 void testq(Register reg1, Register reg2); | 520 void testq(Register reg1, Register reg2); |
521 void testq(Register reg, const Immediate& imm); | 521 void testq(Register reg, const Immediate& imm); |
522 void TestImmediate(Register dst, const Immediate& imm, Register pp); | 522 void TestImmediate(Register dst, const Immediate& imm, Register pp); |
523 | 523 |
524 void andl(Register dst, Register src); | 524 void andl(Register dst, Register src); |
525 void andl(Register dst, const Immediate& imm); | 525 void andl(Register dst, const Immediate& imm); |
526 | 526 |
527 void orl(Register dst, Register src); | 527 void orl(Register dst, Register src); |
528 void orl(Register dst, const Immediate& imm); | 528 void orl(Register dst, const Immediate& imm); |
| 529 void orl(const Address& dst, Register src); |
529 | 530 |
530 void xorl(Register dst, Register src); | 531 void xorl(Register dst, Register src); |
531 | 532 |
532 void andq(Register dst, Register src); | 533 void andq(Register dst, Register src); |
533 void andq(Register dst, const Address& address); | 534 void andq(Register dst, const Address& address); |
534 void andq(Register dst, const Immediate& imm); | 535 void andq(Register dst, const Immediate& imm); |
535 void AndImmediate(Register dst, const Immediate& imm, Register pp); | 536 void AndImmediate(Register dst, const Immediate& imm, Register pp); |
536 | 537 |
537 void orq(Register dst, Register src); | 538 void orq(Register dst, Register src); |
538 void orq(Register dst, const Address& address); | 539 void orq(Register dst, const Address& address); |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 * Misc. functionality. | 823 * Misc. functionality. |
823 */ | 824 */ |
824 void SmiTag(Register reg) { | 825 void SmiTag(Register reg) { |
825 addq(reg, reg); | 826 addq(reg, reg); |
826 } | 827 } |
827 | 828 |
828 void SmiUntag(Register reg) { | 829 void SmiUntag(Register reg) { |
829 sarq(reg, Immediate(kSmiTagSize)); | 830 sarq(reg, Immediate(kSmiTagSize)); |
830 } | 831 } |
831 | 832 |
| 833 void ComputeRange(Register result, Register value, Label* miss); |
| 834 void UpdateRangeFeedback(Register value, |
| 835 intptr_t index, |
| 836 Register ic_data, |
| 837 Register scratch, |
| 838 Label* miss); |
| 839 |
832 int PreferredLoopAlignment() { return 16; } | 840 int PreferredLoopAlignment() { return 16; } |
833 void Align(int alignment, intptr_t offset); | 841 void Align(int alignment, intptr_t offset); |
834 void Bind(Label* label); | 842 void Bind(Label* label); |
835 void Jump(Label* label) { jmp(label); } | 843 void Jump(Label* label) { jmp(label); } |
836 | 844 |
837 void Comment(const char* format, ...) PRINTF_ATTRIBUTE(2, 3); | 845 void Comment(const char* format, ...) PRINTF_ATTRIBUTE(2, 3); |
838 static bool EmittingComments(); | 846 static bool EmittingComments(); |
839 | 847 |
840 const Code::Comments& GetCodeComments() const; | 848 const Code::Comments& GetCodeComments() const; |
841 | 849 |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1186 } | 1194 } |
1187 | 1195 |
1188 | 1196 |
1189 inline void Assembler::EmitOperandSizeOverride() { | 1197 inline void Assembler::EmitOperandSizeOverride() { |
1190 EmitUint8(0x66); | 1198 EmitUint8(0x66); |
1191 } | 1199 } |
1192 | 1200 |
1193 } // namespace dart | 1201 } // namespace dart |
1194 | 1202 |
1195 #endif // VM_ASSEMBLER_X64_H_ | 1203 #endif // VM_ASSEMBLER_X64_H_ |
OLD | NEW |