Skip to content

Commit 63ed3b6

Browse files
[arch/x86] feat: finish Intel APX NDD
1 parent ff3b32f commit 63ed3b6

File tree

2 files changed

+592
-598
lines changed

2 files changed

+592
-598
lines changed

arch/x86/arch_x86.cpp

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3463,22 +3463,22 @@ class X64Architecture: public X86CommonArchitecture
34633463
case XED_REG_R14W: return RegisterInfo(XED_REG_R14, 0, 2);
34643464
case XED_REG_R15W: return RegisterInfo(XED_REG_R15, 0, 2);
34653465

3466-
case XED_REG_R16W: return RegisterInfo(XED_REG_R16, 0, 1);
3467-
case XED_REG_R17W: return RegisterInfo(XED_REG_R17, 0, 1);
3468-
case XED_REG_R18W: return RegisterInfo(XED_REG_R18, 0, 1);
3469-
case XED_REG_R19W: return RegisterInfo(XED_REG_R19, 0, 1);
3470-
case XED_REG_R20W: return RegisterInfo(XED_REG_R20, 0, 1);
3471-
case XED_REG_R21W: return RegisterInfo(XED_REG_R21, 0, 1);
3472-
case XED_REG_R22W: return RegisterInfo(XED_REG_R22, 0, 1);
3473-
case XED_REG_R23W: return RegisterInfo(XED_REG_R23, 0, 1);
3474-
case XED_REG_R24W: return RegisterInfo(XED_REG_R24, 0, 1);
3475-
case XED_REG_R25W: return RegisterInfo(XED_REG_R25, 0, 1);
3476-
case XED_REG_R26W: return RegisterInfo(XED_REG_R26, 0, 1);
3477-
case XED_REG_R27W: return RegisterInfo(XED_REG_R27, 0, 1);
3478-
case XED_REG_R28W: return RegisterInfo(XED_REG_R28, 0, 1);
3479-
case XED_REG_R29W: return RegisterInfo(XED_REG_R29, 0, 1);
3480-
case XED_REG_R30W: return RegisterInfo(XED_REG_R30, 0, 1);
3481-
case XED_REG_R31W: return RegisterInfo(XED_REG_R31, 0, 1);
3466+
case XED_REG_R16W: return RegisterInfo(XED_REG_R16, 0, 2);
3467+
case XED_REG_R17W: return RegisterInfo(XED_REG_R17, 0, 2);
3468+
case XED_REG_R18W: return RegisterInfo(XED_REG_R18, 0, 2);
3469+
case XED_REG_R19W: return RegisterInfo(XED_REG_R19, 0, 2);
3470+
case XED_REG_R20W: return RegisterInfo(XED_REG_R20, 0, 2);
3471+
case XED_REG_R21W: return RegisterInfo(XED_REG_R21, 0, 2);
3472+
case XED_REG_R22W: return RegisterInfo(XED_REG_R22, 0, 2);
3473+
case XED_REG_R23W: return RegisterInfo(XED_REG_R23, 0, 2);
3474+
case XED_REG_R24W: return RegisterInfo(XED_REG_R24, 0, 2);
3475+
case XED_REG_R25W: return RegisterInfo(XED_REG_R25, 0, 2);
3476+
case XED_REG_R26W: return RegisterInfo(XED_REG_R26, 0, 2);
3477+
case XED_REG_R27W: return RegisterInfo(XED_REG_R27, 0, 2);
3478+
case XED_REG_R28W: return RegisterInfo(XED_REG_R28, 0, 2);
3479+
case XED_REG_R29W: return RegisterInfo(XED_REG_R29, 0, 2);
3480+
case XED_REG_R30W: return RegisterInfo(XED_REG_R30, 0, 2);
3481+
case XED_REG_R31W: return RegisterInfo(XED_REG_R31, 0, 2);
34823482

34833483
// 32-Bit
34843484
case XED_REG_EIP: return RegisterInfo(XED_REG_RIP, 0, 4);
@@ -3517,22 +3517,22 @@ class X64Architecture: public X86CommonArchitecture
35173517
case XED_REG_R14D: return RegisterInfo(XED_REG_R14, 0, 4, true);
35183518
case XED_REG_R15D: return RegisterInfo(XED_REG_R15, 0, 4, true);
35193519

3520-
case XED_REG_R16D: return RegisterInfo(XED_REG_R16, 0, 1);
3521-
case XED_REG_R17D: return RegisterInfo(XED_REG_R17, 0, 1);
3522-
case XED_REG_R18D: return RegisterInfo(XED_REG_R18, 0, 1);
3523-
case XED_REG_R19D: return RegisterInfo(XED_REG_R19, 0, 1);
3524-
case XED_REG_R20D: return RegisterInfo(XED_REG_R20, 0, 1);
3525-
case XED_REG_R21D: return RegisterInfo(XED_REG_R21, 0, 1);
3526-
case XED_REG_R22D: return RegisterInfo(XED_REG_R22, 0, 1);
3527-
case XED_REG_R23D: return RegisterInfo(XED_REG_R23, 0, 1);
3528-
case XED_REG_R24D: return RegisterInfo(XED_REG_R24, 0, 1);
3529-
case XED_REG_R25D: return RegisterInfo(XED_REG_R25, 0, 1);
3530-
case XED_REG_R26D: return RegisterInfo(XED_REG_R26, 0, 1);
3531-
case XED_REG_R27D: return RegisterInfo(XED_REG_R27, 0, 1);
3532-
case XED_REG_R28D: return RegisterInfo(XED_REG_R28, 0, 1);
3533-
case XED_REG_R29D: return RegisterInfo(XED_REG_R29, 0, 1);
3534-
case XED_REG_R30D: return RegisterInfo(XED_REG_R30, 0, 1);
3535-
case XED_REG_R31D: return RegisterInfo(XED_REG_R31, 0, 1);
3520+
case XED_REG_R16D: return RegisterInfo(XED_REG_R16, 0, 4, true);
3521+
case XED_REG_R17D: return RegisterInfo(XED_REG_R17, 0, 4, true);
3522+
case XED_REG_R18D: return RegisterInfo(XED_REG_R18, 0, 4, true);
3523+
case XED_REG_R19D: return RegisterInfo(XED_REG_R19, 0, 4, true);
3524+
case XED_REG_R20D: return RegisterInfo(XED_REG_R20, 0, 4, true);
3525+
case XED_REG_R21D: return RegisterInfo(XED_REG_R21, 0, 4, true);
3526+
case XED_REG_R22D: return RegisterInfo(XED_REG_R22, 0, 4, true);
3527+
case XED_REG_R23D: return RegisterInfo(XED_REG_R23, 0, 4, true);
3528+
case XED_REG_R24D: return RegisterInfo(XED_REG_R24, 0, 4, true);
3529+
case XED_REG_R25D: return RegisterInfo(XED_REG_R25, 0, 4, true);
3530+
case XED_REG_R26D: return RegisterInfo(XED_REG_R26, 0, 4, true);
3531+
case XED_REG_R27D: return RegisterInfo(XED_REG_R27, 0, 4, true);
3532+
case XED_REG_R28D: return RegisterInfo(XED_REG_R28, 0, 4, true);
3533+
case XED_REG_R29D: return RegisterInfo(XED_REG_R29, 0, 4, true);
3534+
case XED_REG_R30D: return RegisterInfo(XED_REG_R30, 0, 4, true);
3535+
case XED_REG_R31D: return RegisterInfo(XED_REG_R31, 0, 4, true);
35363536

35373537
// 48-Bit
35383538
case XED_REG_GDTR: return RegisterInfo(XED_REG_GDTR, 0, 6);
@@ -3580,22 +3580,23 @@ class X64Architecture: public X86CommonArchitecture
35803580
case XED_REG_R13: return RegisterInfo(XED_REG_R13, 0, 8);
35813581
case XED_REG_R14: return RegisterInfo(XED_REG_R14, 0, 8);
35823582
case XED_REG_R15: return RegisterInfo(XED_REG_R15, 0, 8);
3583-
case XED_REG_R16: return RegisterInfo(XED_REG_R16, 0, 1);
3584-
case XED_REG_R17: return RegisterInfo(XED_REG_R17, 0, 1);
3585-
case XED_REG_R18: return RegisterInfo(XED_REG_R18, 0, 1);
3586-
case XED_REG_R19: return RegisterInfo(XED_REG_R19, 0, 1);
3587-
case XED_REG_R20: return RegisterInfo(XED_REG_R20, 0, 1);
3588-
case XED_REG_R21: return RegisterInfo(XED_REG_R21, 0, 1);
3589-
case XED_REG_R22: return RegisterInfo(XED_REG_R22, 0, 1);
3590-
case XED_REG_R23: return RegisterInfo(XED_REG_R23, 0, 1);
3591-
case XED_REG_R24: return RegisterInfo(XED_REG_R24, 0, 1);
3592-
case XED_REG_R25: return RegisterInfo(XED_REG_R25, 0, 1);
3593-
case XED_REG_R26: return RegisterInfo(XED_REG_R26, 0, 1);
3594-
case XED_REG_R27: return RegisterInfo(XED_REG_R27, 0, 1);
3595-
case XED_REG_R28: return RegisterInfo(XED_REG_R28, 0, 1);
3596-
case XED_REG_R29: return RegisterInfo(XED_REG_R29, 0, 1);
3597-
case XED_REG_R30: return RegisterInfo(XED_REG_R30, 0, 1);
3598-
case XED_REG_R31: return RegisterInfo(XED_REG_R31, 0, 1);
3583+
3584+
case XED_REG_R16: return RegisterInfo(XED_REG_R16, 0, 8);
3585+
case XED_REG_R17: return RegisterInfo(XED_REG_R17, 0, 8);
3586+
case XED_REG_R18: return RegisterInfo(XED_REG_R18, 0, 8);
3587+
case XED_REG_R19: return RegisterInfo(XED_REG_R19, 0, 8);
3588+
case XED_REG_R20: return RegisterInfo(XED_REG_R20, 0, 8);
3589+
case XED_REG_R21: return RegisterInfo(XED_REG_R21, 0, 8);
3590+
case XED_REG_R22: return RegisterInfo(XED_REG_R22, 0, 8);
3591+
case XED_REG_R23: return RegisterInfo(XED_REG_R23, 0, 8);
3592+
case XED_REG_R24: return RegisterInfo(XED_REG_R24, 0, 8);
3593+
case XED_REG_R25: return RegisterInfo(XED_REG_R25, 0, 8);
3594+
case XED_REG_R26: return RegisterInfo(XED_REG_R26, 0, 8);
3595+
case XED_REG_R27: return RegisterInfo(XED_REG_R27, 0, 8);
3596+
case XED_REG_R28: return RegisterInfo(XED_REG_R28, 0, 8);
3597+
case XED_REG_R29: return RegisterInfo(XED_REG_R29, 0, 8);
3598+
case XED_REG_R30: return RegisterInfo(XED_REG_R30, 0, 8);
3599+
case XED_REG_R31: return RegisterInfo(XED_REG_R31, 0, 8);
35993600

36003601

36013602
case XED_REG_BNDCFGU: return RegisterInfo(XED_REG_BNDCFGU, 0, 8);

0 commit comments

Comments
 (0)