mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Add support for the X86 secure guard extensions instructions in assembler (SGX).
This allows assembling the two new instructions, encls and enclu for the SKX processor model. Note the diffs are a bigger than what might think, but to fit the new MRM_CF and MRM_D7 in things in the right places things had to be renumbered and shuffled down causing a bit more diffs. rdar://16228228 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214460 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1385,20 +1385,21 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI,
|
||||
case X86II::MRM_C0: case X86II::MRM_C1: case X86II::MRM_C2:
|
||||
case X86II::MRM_C3: case X86II::MRM_C4: case X86II::MRM_C8:
|
||||
case X86II::MRM_C9: case X86II::MRM_CA: case X86II::MRM_CB:
|
||||
case X86II::MRM_D0: case X86II::MRM_D1: case X86II::MRM_D4:
|
||||
case X86II::MRM_D5: case X86II::MRM_D6: case X86II::MRM_D8:
|
||||
case X86II::MRM_D9: case X86II::MRM_DA: case X86II::MRM_DB:
|
||||
case X86II::MRM_DC: case X86II::MRM_DD: case X86II::MRM_DE:
|
||||
case X86II::MRM_DF: case X86II::MRM_E0: case X86II::MRM_E1:
|
||||
case X86II::MRM_E2: case X86II::MRM_E3: case X86II::MRM_E4:
|
||||
case X86II::MRM_E5: case X86II::MRM_E8: case X86II::MRM_E9:
|
||||
case X86II::MRM_EA: case X86II::MRM_EB: case X86II::MRM_EC:
|
||||
case X86II::MRM_ED: case X86II::MRM_EE: case X86II::MRM_F0:
|
||||
case X86II::MRM_F1: case X86II::MRM_F2: case X86II::MRM_F3:
|
||||
case X86II::MRM_F4: case X86II::MRM_F5: case X86II::MRM_F6:
|
||||
case X86II::MRM_F7: case X86II::MRM_F8: case X86II::MRM_F9:
|
||||
case X86II::MRM_FA: case X86II::MRM_FB: case X86II::MRM_FC:
|
||||
case X86II::MRM_FD: case X86II::MRM_FE: case X86II::MRM_FF:
|
||||
case X86II::MRM_CF: case X86II::MRM_D0: case X86II::MRM_D1:
|
||||
case X86II::MRM_D4: case X86II::MRM_D5: case X86II::MRM_D6:
|
||||
case X86II::MRM_D7: case X86II::MRM_D8: case X86II::MRM_D9:
|
||||
case X86II::MRM_DA: case X86II::MRM_DB: case X86II::MRM_DC:
|
||||
case X86II::MRM_DD: case X86II::MRM_DE: case X86II::MRM_DF:
|
||||
case X86II::MRM_E0: case X86II::MRM_E1: case X86II::MRM_E2:
|
||||
case X86II::MRM_E3: case X86II::MRM_E4: case X86II::MRM_E5:
|
||||
case X86II::MRM_E8: case X86II::MRM_E9: case X86II::MRM_EA:
|
||||
case X86II::MRM_EB: case X86II::MRM_EC: case X86II::MRM_ED:
|
||||
case X86II::MRM_EE: case X86II::MRM_F0: case X86II::MRM_F1:
|
||||
case X86II::MRM_F2: case X86II::MRM_F3: case X86II::MRM_F4:
|
||||
case X86II::MRM_F5: case X86II::MRM_F6: case X86II::MRM_F7:
|
||||
case X86II::MRM_F8: case X86II::MRM_F9: case X86II::MRM_FA:
|
||||
case X86II::MRM_FB: case X86II::MRM_FC: case X86II::MRM_FD:
|
||||
case X86II::MRM_FE: case X86II::MRM_FF:
|
||||
MCE.emitByte(BaseOpcode);
|
||||
|
||||
unsigned char MRM;
|
||||
@@ -1413,11 +1414,13 @@ void Emitter<CodeEmitter>::emitInstruction(MachineInstr &MI,
|
||||
case X86II::MRM_C9: MRM = 0xC9; break;
|
||||
case X86II::MRM_CA: MRM = 0xCA; break;
|
||||
case X86II::MRM_CB: MRM = 0xCB; break;
|
||||
case X86II::MRM_CF: MRM = 0xCF; break;
|
||||
case X86II::MRM_D0: MRM = 0xD0; break;
|
||||
case X86II::MRM_D1: MRM = 0xD1; break;
|
||||
case X86II::MRM_D4: MRM = 0xD4; break;
|
||||
case X86II::MRM_D5: MRM = 0xD5; break;
|
||||
case X86II::MRM_D6: MRM = 0xD6; break;
|
||||
case X86II::MRM_D7: MRM = 0xD7; break;
|
||||
case X86II::MRM_D8: MRM = 0xD8; break;
|
||||
case X86II::MRM_D9: MRM = 0xD9; break;
|
||||
case X86II::MRM_DA: MRM = 0xDA; break;
|
||||
|
Reference in New Issue
Block a user