OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 static const byte kTestEaxByte = 0xA9; | 622 static const byte kTestEaxByte = 0xA9; |
623 // One byte opcode for test al, 0xXX. | 623 // One byte opcode for test al, 0xXX. |
624 static const byte kTestAlByte = 0xA8; | 624 static const byte kTestAlByte = 0xA8; |
625 // One byte opcode for nop. | 625 // One byte opcode for nop. |
626 static const byte kNopByte = 0x90; | 626 static const byte kNopByte = 0x90; |
627 | 627 |
628 // One byte prefix for a short conditional jump. | 628 // One byte prefix for a short conditional jump. |
629 static const byte kJccShortPrefix = 0x70; | 629 static const byte kJccShortPrefix = 0x70; |
630 static const byte kJncShortOpcode = kJccShortPrefix | not_carry; | 630 static const byte kJncShortOpcode = kJccShortPrefix | not_carry; |
631 static const byte kJcShortOpcode = kJccShortPrefix | carry; | 631 static const byte kJcShortOpcode = kJccShortPrefix | carry; |
632 | 632 static const byte kJnzShortOpcode = kJccShortPrefix | not_zero; |
| 633 static const byte kJzShortOpcode = kJccShortPrefix | zero; |
633 | 634 |
634 | 635 |
635 // --------------------------------------------------------------------------- | 636 // --------------------------------------------------------------------------- |
636 // Code generation | 637 // Code generation |
637 // | 638 // |
638 // Function names correspond one-to-one to x64 instruction mnemonics. | 639 // Function names correspond one-to-one to x64 instruction mnemonics. |
639 // Unless specified otherwise, instructions operate on 64-bit operands. | 640 // Unless specified otherwise, instructions operate on 64-bit operands. |
640 // | 641 // |
641 // If we need versions of an assembly instruction that operate on different | 642 // If we need versions of an assembly instruction that operate on different |
642 // width arguments, we add a single-letter suffix specifying the width. | 643 // width arguments, we add a single-letter suffix specifying the width. |
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1663 private: | 1664 private: |
1664 Assembler* assembler_; | 1665 Assembler* assembler_; |
1665 #ifdef DEBUG | 1666 #ifdef DEBUG |
1666 int space_before_; | 1667 int space_before_; |
1667 #endif | 1668 #endif |
1668 }; | 1669 }; |
1669 | 1670 |
1670 } } // namespace v8::internal | 1671 } } // namespace v8::internal |
1671 | 1672 |
1672 #endif // V8_X64_ASSEMBLER_X64_H_ | 1673 #endif // V8_X64_ASSEMBLER_X64_H_ |
OLD | NEW |