| OLD | NEW |
| 1 //===-- X86BaseInfo.h - Top level definitions for X86 -------- --*- C++ -*-===// | 1 //===-- X86BaseInfo.h - Top level definitions for X86 -------- --*- C++ -*-===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file contains small standalone helper functions and enum definitions for | 10 // This file contains small standalone helper functions and enum definitions for |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 MRM_D8 = 48, MRM_D9 = 49, MRM_DA = 50, MRM_DB = 51, | 308 MRM_D8 = 48, MRM_D9 = 49, MRM_DA = 50, MRM_DB = 51, |
| 309 MRM_DC = 52, MRM_DD = 53, MRM_DE = 54, MRM_DF = 55, | 309 MRM_DC = 52, MRM_DD = 53, MRM_DE = 54, MRM_DF = 55, |
| 310 MRM_E0 = 56, MRM_E1 = 57, MRM_E2 = 58, MRM_E3 = 59, | 310 MRM_E0 = 56, MRM_E1 = 57, MRM_E2 = 58, MRM_E3 = 59, |
| 311 MRM_E4 = 60, MRM_E5 = 61, MRM_E8 = 62, MRM_E9 = 63, | 311 MRM_E4 = 60, MRM_E5 = 61, MRM_E8 = 62, MRM_E9 = 63, |
| 312 MRM_EA = 64, MRM_EB = 65, MRM_EC = 66, MRM_ED = 67, | 312 MRM_EA = 64, MRM_EB = 65, MRM_EC = 66, MRM_ED = 67, |
| 313 MRM_EE = 68, MRM_F0 = 69, MRM_F1 = 70, MRM_F2 = 71, | 313 MRM_EE = 68, MRM_F0 = 69, MRM_F1 = 70, MRM_F2 = 71, |
| 314 MRM_F3 = 72, MRM_F4 = 73, MRM_F5 = 74, MRM_F6 = 75, | 314 MRM_F3 = 72, MRM_F4 = 73, MRM_F5 = 74, MRM_F6 = 75, |
| 315 MRM_F7 = 76, MRM_F8 = 77, MRM_F9 = 78, MRM_FA = 79, | 315 MRM_F7 = 76, MRM_F8 = 77, MRM_F9 = 78, MRM_FA = 79, |
| 316 MRM_FB = 80, MRM_FC = 81, MRM_FD = 82, MRM_FE = 83, | 316 MRM_FB = 80, MRM_FC = 81, MRM_FD = 82, MRM_FE = 83, |
| 317 MRM_FF = 84, | 317 MRM_FF = 84, |
| 318 | 318 CustomFrm = 126, // @LOCALMOD |
| 319 FormMask = 127, | 319 FormMask = 127, |
| 320 | 320 |
| 321 //===------------------------------------------------------------------===// | 321 //===------------------------------------------------------------------===// |
| 322 // Actual flags... | 322 // Actual flags... |
| 323 | 323 |
| 324 // OpSize - OpSizeFixed implies instruction never needs a 0x66 prefix. | 324 // OpSize - OpSizeFixed implies instruction never needs a 0x66 prefix. |
| 325 // OpSize16 means this is a 16-bit instruction and needs 0x66 prefix in | 325 // OpSize16 means this is a 16-bit instruction and needs 0x66 prefix in |
| 326 // 32-bit mode. OpSize32 means this is a 32-bit instruction needs a 0x66 | 326 // 32-bit mode. OpSize32 means this is a 32-bit instruction needs a 0x66 |
| 327 // prefix in 16-bit mode. | 327 // prefix in 16-bit mode. |
| 328 OpSizeShift = 7, | 328 OpSizeShift = 7, |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 /// is duplicated in the MCInst (e.g. "EAX = addl EAX, [mem]") it is only | 648 /// is duplicated in the MCInst (e.g. "EAX = addl EAX, [mem]") it is only |
| 649 /// counted as one operand. | 649 /// counted as one operand. |
| 650 /// | 650 /// |
| 651 inline int getMemoryOperandNo(uint64_t TSFlags, unsigned Opcode) { | 651 inline int getMemoryOperandNo(uint64_t TSFlags, unsigned Opcode) { |
| 652 bool HasVEX_4V = TSFlags & X86II::VEX_4V; | 652 bool HasVEX_4V = TSFlags & X86II::VEX_4V; |
| 653 bool HasMemOp4 = TSFlags & X86II::MemOp4; | 653 bool HasMemOp4 = TSFlags & X86II::MemOp4; |
| 654 bool HasEVEX_K = TSFlags & X86II::EVEX_K; | 654 bool HasEVEX_K = TSFlags & X86II::EVEX_K; |
| 655 | 655 |
| 656 switch (TSFlags & X86II::FormMask) { | 656 switch (TSFlags & X86II::FormMask) { |
| 657 default: llvm_unreachable("Unknown FormMask value in getMemoryOperandNo!"); | 657 default: llvm_unreachable("Unknown FormMask value in getMemoryOperandNo!"); |
| 658 case X86II::CustomFrm: // @LOCALMOD |
| 658 case X86II::Pseudo: | 659 case X86II::Pseudo: |
| 659 case X86II::RawFrm: | 660 case X86II::RawFrm: |
| 660 case X86II::AddRegFrm: | 661 case X86II::AddRegFrm: |
| 661 case X86II::MRMDestReg: | 662 case X86II::MRMDestReg: |
| 662 case X86II::MRMSrcReg: | 663 case X86II::MRMSrcReg: |
| 663 case X86II::RawFrmImm8: | 664 case X86II::RawFrmImm8: |
| 664 case X86II::RawFrmImm16: | 665 case X86II::RawFrmImm16: |
| 665 case X86II::RawFrmMemOffs: | 666 case X86II::RawFrmMemOffs: |
| 666 case X86II::RawFrmSrc: | 667 case X86II::RawFrmSrc: |
| 667 case X86II::RawFrmDst: | 668 case X86II::RawFrmDst: |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 762 | 763 |
| 763 inline bool isX86_64NonExtLowByteReg(unsigned reg) { | 764 inline bool isX86_64NonExtLowByteReg(unsigned reg) { |
| 764 return (reg == X86::SPL || reg == X86::BPL || | 765 return (reg == X86::SPL || reg == X86::BPL || |
| 765 reg == X86::SIL || reg == X86::DIL); | 766 reg == X86::SIL || reg == X86::DIL); |
| 766 } | 767 } |
| 767 } | 768 } |
| 768 | 769 |
| 769 } // end namespace llvm; | 770 } // end namespace llvm; |
| 770 | 771 |
| 771 #endif | 772 #endif |
| OLD | NEW |