@@ -1423,6 +1423,7 @@ void X86CommonArchitecture::GetOperandTextBNIntel(const xed_decoded_inst_t* cons
14231423 break ;
14241424 }
14251425 case XED_OPERAND_PTR:
1426+ case XED_OPERAND_ABSBR:
14261427 {
14271428 stringstream sstream;
14281429 sstream << " 0x" << hex;
@@ -3281,6 +3282,8 @@ class X64Architecture: public X86CommonArchitecture
32813282
32823283 XED_REG_RAX, XED_REG_RCX, XED_REG_RDX, XED_REG_RBX, // 64+
32833284 XED_REG_R8, XED_REG_R9, XED_REG_R10, XED_REG_R11, XED_REG_R12, XED_REG_R13, XED_REG_R14, XED_REG_R15, // 64+
3285+ XED_REG_R16, XED_REG_R17, XED_REG_R18, XED_REG_R19, XED_REG_R20, XED_REG_R21, XED_REG_R22, XED_REG_R23, // APX
3286+ XED_REG_R24, XED_REG_R25, XED_REG_R26, XED_REG_R27, XED_REG_R28, XED_REG_R29, XED_REG_R30, XED_REG_R31, // APX
32843287
32853288 XED_REG_BNDCFGU, XED_REG_BNDSTATUS, // 64 briefly. MPX control registers
32863289 XED_REG_K0, XED_REG_K1, XED_REG_K2, XED_REG_K3, XED_REG_K4, XED_REG_K5, XED_REG_K6, XED_REG_K7, // 64+ AVX bit-masking registers (also not confident in size)
@@ -3309,6 +3312,8 @@ class X64Architecture: public X86CommonArchitecture
33093312 XED_REG_AH, XED_REG_CH, XED_REG_DH, XED_REG_BH, XED_REG_AL, XED_REG_CL, XED_REG_DL, XED_REG_BL, // 16+
33103313 XED_REG_SPL, XED_REG_BPL, XED_REG_SIL, XED_REG_DIL, // 64+
33113314 XED_REG_R8B, XED_REG_R9B, XED_REG_R10B, XED_REG_R11B, XED_REG_R12B, XED_REG_R13B, XED_REG_R14B, XED_REG_R15B, // 64+
3315+ XED_REG_R16B, XED_REG_R17B, XED_REG_R18B, XED_REG_R19B, XED_REG_R20B, XED_REG_R21B, XED_REG_R22B, XED_REG_R23B, // APX
3316+ XED_REG_R24B, XED_REG_R25B, XED_REG_R26B, XED_REG_R27B, XED_REG_R28B, XED_REG_R29B, XED_REG_R30B, XED_REG_R31B, // APX
33123317
33133318 // 16-Bit
33143319 XED_REG_IP, // 16+
@@ -3322,6 +3327,8 @@ class X64Architecture: public X86CommonArchitecture
33223327
33233328 XED_REG_AX, XED_REG_CX, XED_REG_DX, XED_REG_BX, // 16+
33243329 XED_REG_R8W, XED_REG_R9W, XED_REG_R10W, XED_REG_R11W, XED_REG_R12W, XED_REG_R13W, XED_REG_R14W, XED_REG_R15W, // 64+
3330+ XED_REG_R16W, XED_REG_R17W, XED_REG_R18W, XED_REG_R19W, XED_REG_R20W, XED_REG_R21W, XED_REG_R22W, XED_REG_R23W, // APX
3331+ XED_REG_R24W, XED_REG_R25W, XED_REG_R26W, XED_REG_R27W, XED_REG_R28W, XED_REG_R29W, XED_REG_R30W, XED_REG_R31W, // APX
33253332
33263333 // 32-Bit
33273334 XED_REG_EIP, // 32+
@@ -3330,6 +3337,8 @@ class X64Architecture: public X86CommonArchitecture
33303337
33313338 XED_REG_EAX, XED_REG_ECX, XED_REG_EDX, XED_REG_EBX, // 32+
33323339 XED_REG_R8D, XED_REG_R9D, XED_REG_R10D, XED_REG_R11D, XED_REG_R12D, XED_REG_R13D, XED_REG_R14D, XED_REG_R15D, // 64+
3340+ XED_REG_R16D, XED_REG_R17D, XED_REG_R18D, XED_REG_R19D, XED_REG_R20D, XED_REG_R21D, XED_REG_R22D, XED_REG_R23D, // APX
3341+ XED_REG_R24D, XED_REG_R25D, XED_REG_R26D, XED_REG_R27D, XED_REG_R28D, XED_REG_R29D, XED_REG_R30D, XED_REG_R31D, // APX
33333342
33343343 // 48-Bit (All 32+)
33353344 XED_REG_GDTR, // Global Descriptor Table Register
@@ -3349,6 +3358,8 @@ class X64Architecture: public X86CommonArchitecture
33493358
33503359 XED_REG_RAX, XED_REG_RCX, XED_REG_RDX, XED_REG_RBX, // 64+
33513360 XED_REG_R8, XED_REG_R9, XED_REG_R10, XED_REG_R11, XED_REG_R12, XED_REG_R13, XED_REG_R14, XED_REG_R15, // 64+
3361+ XED_REG_R16, XED_REG_R17, XED_REG_R18, XED_REG_R19, XED_REG_R20, XED_REG_R21, XED_REG_R22, XED_REG_R23, // APX
3362+ XED_REG_R24, XED_REG_R25, XED_REG_R26, XED_REG_R27, XED_REG_R28, XED_REG_R29, XED_REG_R30, XED_REG_R31, // APX
33523363
33533364 XED_REG_BNDCFGU, XED_REG_BNDSTATUS, // 64 briefly. MPX control registers
33543365 XED_REG_K0, XED_REG_K1, XED_REG_K2, XED_REG_K3, XED_REG_K4, XED_REG_K5, XED_REG_K6, XED_REG_K7, // 64+ AVX bit-masking registers (also not confident in size)
@@ -3404,6 +3415,23 @@ class X64Architecture: public X86CommonArchitecture
34043415 case XED_REG_R14B: return RegisterInfo (XED_REG_R14, 0 , 1 );
34053416 case XED_REG_R15B: return RegisterInfo (XED_REG_R15, 0 , 1 );
34063417
3418+ case XED_REG_R16B: return RegisterInfo (XED_REG_R16, 0 , 1 );
3419+ case XED_REG_R17B: return RegisterInfo (XED_REG_R17, 0 , 1 );
3420+ case XED_REG_R18B: return RegisterInfo (XED_REG_R18, 0 , 1 );
3421+ case XED_REG_R19B: return RegisterInfo (XED_REG_R19, 0 , 1 );
3422+ case XED_REG_R20B: return RegisterInfo (XED_REG_R20, 0 , 1 );
3423+ case XED_REG_R21B: return RegisterInfo (XED_REG_R21, 0 , 1 );
3424+ case XED_REG_R22B: return RegisterInfo (XED_REG_R22, 0 , 1 );
3425+ case XED_REG_R23B: return RegisterInfo (XED_REG_R23, 0 , 1 );
3426+ case XED_REG_R24B: return RegisterInfo (XED_REG_R24, 0 , 1 );
3427+ case XED_REG_R25B: return RegisterInfo (XED_REG_R25, 0 , 1 );
3428+ case XED_REG_R26B: return RegisterInfo (XED_REG_R26, 0 , 1 );
3429+ case XED_REG_R27B: return RegisterInfo (XED_REG_R27, 0 , 1 );
3430+ case XED_REG_R28B: return RegisterInfo (XED_REG_R28, 0 , 1 );
3431+ case XED_REG_R29B: return RegisterInfo (XED_REG_R29, 0 , 1 );
3432+ case XED_REG_R30B: return RegisterInfo (XED_REG_R30, 0 , 1 );
3433+ case XED_REG_R31B: return RegisterInfo (XED_REG_R31, 0 , 1 );
3434+
34073435 // 16-Bit
34083436 case XED_REG_IP: return RegisterInfo (XED_REG_RIP, 0 , 2 );
34093437
@@ -3434,6 +3462,23 @@ class X64Architecture: public X86CommonArchitecture
34343462 case XED_REG_R14W: return RegisterInfo (XED_REG_R14, 0 , 2 );
34353463 case XED_REG_R15W: return RegisterInfo (XED_REG_R15, 0 , 2 );
34363464
3465+ case XED_REG_R16W: return RegisterInfo (XED_REG_R16, 0 , 1 );
3466+ case XED_REG_R17W: return RegisterInfo (XED_REG_R17, 0 , 1 );
3467+ case XED_REG_R18W: return RegisterInfo (XED_REG_R18, 0 , 1 );
3468+ case XED_REG_R19W: return RegisterInfo (XED_REG_R19, 0 , 1 );
3469+ case XED_REG_R20W: return RegisterInfo (XED_REG_R20, 0 , 1 );
3470+ case XED_REG_R21W: return RegisterInfo (XED_REG_R21, 0 , 1 );
3471+ case XED_REG_R22W: return RegisterInfo (XED_REG_R22, 0 , 1 );
3472+ case XED_REG_R23W: return RegisterInfo (XED_REG_R23, 0 , 1 );
3473+ case XED_REG_R24W: return RegisterInfo (XED_REG_R24, 0 , 1 );
3474+ case XED_REG_R25W: return RegisterInfo (XED_REG_R25, 0 , 1 );
3475+ case XED_REG_R26W: return RegisterInfo (XED_REG_R26, 0 , 1 );
3476+ case XED_REG_R27W: return RegisterInfo (XED_REG_R27, 0 , 1 );
3477+ case XED_REG_R28W: return RegisterInfo (XED_REG_R28, 0 , 1 );
3478+ case XED_REG_R29W: return RegisterInfo (XED_REG_R29, 0 , 1 );
3479+ case XED_REG_R30W: return RegisterInfo (XED_REG_R30, 0 , 1 );
3480+ case XED_REG_R31W: return RegisterInfo (XED_REG_R31, 0 , 1 );
3481+
34373482 // 32-Bit
34383483 case XED_REG_EIP: return RegisterInfo (XED_REG_RIP, 0 , 4 );
34393484
@@ -3471,6 +3516,23 @@ class X64Architecture: public X86CommonArchitecture
34713516 case XED_REG_R14D: return RegisterInfo (XED_REG_R14, 0 , 4 , true );
34723517 case XED_REG_R15D: return RegisterInfo (XED_REG_R15, 0 , 4 , true );
34733518
3519+ case XED_REG_R16D: return RegisterInfo (XED_REG_R16, 0 , 1 );
3520+ case XED_REG_R17D: return RegisterInfo (XED_REG_R17, 0 , 1 );
3521+ case XED_REG_R18D: return RegisterInfo (XED_REG_R18, 0 , 1 );
3522+ case XED_REG_R19D: return RegisterInfo (XED_REG_R19, 0 , 1 );
3523+ case XED_REG_R20D: return RegisterInfo (XED_REG_R20, 0 , 1 );
3524+ case XED_REG_R21D: return RegisterInfo (XED_REG_R21, 0 , 1 );
3525+ case XED_REG_R22D: return RegisterInfo (XED_REG_R22, 0 , 1 );
3526+ case XED_REG_R23D: return RegisterInfo (XED_REG_R23, 0 , 1 );
3527+ case XED_REG_R24D: return RegisterInfo (XED_REG_R24, 0 , 1 );
3528+ case XED_REG_R25D: return RegisterInfo (XED_REG_R25, 0 , 1 );
3529+ case XED_REG_R26D: return RegisterInfo (XED_REG_R26, 0 , 1 );
3530+ case XED_REG_R27D: return RegisterInfo (XED_REG_R27, 0 , 1 );
3531+ case XED_REG_R28D: return RegisterInfo (XED_REG_R28, 0 , 1 );
3532+ case XED_REG_R29D: return RegisterInfo (XED_REG_R29, 0 , 1 );
3533+ case XED_REG_R30D: return RegisterInfo (XED_REG_R30, 0 , 1 );
3534+ case XED_REG_R31D: return RegisterInfo (XED_REG_R31, 0 , 1 );
3535+
34743536 // 48-Bit
34753537 case XED_REG_GDTR: return RegisterInfo (XED_REG_GDTR, 0 , 6 );
34763538 case XED_REG_LDTR: return RegisterInfo (XED_REG_LDTR, 0 , 6 );
@@ -3517,6 +3579,23 @@ class X64Architecture: public X86CommonArchitecture
35173579 case XED_REG_R13: return RegisterInfo (XED_REG_R13, 0 , 8 );
35183580 case XED_REG_R14: return RegisterInfo (XED_REG_R14, 0 , 8 );
35193581 case XED_REG_R15: return RegisterInfo (XED_REG_R15, 0 , 8 );
3582+ case XED_REG_R16: return RegisterInfo (XED_REG_R16, 0 , 1 );
3583+ case XED_REG_R17: return RegisterInfo (XED_REG_R17, 0 , 1 );
3584+ case XED_REG_R18: return RegisterInfo (XED_REG_R18, 0 , 1 );
3585+ case XED_REG_R19: return RegisterInfo (XED_REG_R19, 0 , 1 );
3586+ case XED_REG_R20: return RegisterInfo (XED_REG_R20, 0 , 1 );
3587+ case XED_REG_R21: return RegisterInfo (XED_REG_R21, 0 , 1 );
3588+ case XED_REG_R22: return RegisterInfo (XED_REG_R22, 0 , 1 );
3589+ case XED_REG_R23: return RegisterInfo (XED_REG_R23, 0 , 1 );
3590+ case XED_REG_R24: return RegisterInfo (XED_REG_R24, 0 , 1 );
3591+ case XED_REG_R25: return RegisterInfo (XED_REG_R25, 0 , 1 );
3592+ case XED_REG_R26: return RegisterInfo (XED_REG_R26, 0 , 1 );
3593+ case XED_REG_R27: return RegisterInfo (XED_REG_R27, 0 , 1 );
3594+ case XED_REG_R28: return RegisterInfo (XED_REG_R28, 0 , 1 );
3595+ case XED_REG_R29: return RegisterInfo (XED_REG_R29, 0 , 1 );
3596+ case XED_REG_R30: return RegisterInfo (XED_REG_R30, 0 , 1 );
3597+ case XED_REG_R31: return RegisterInfo (XED_REG_R31, 0 , 1 );
3598+
35203599
35213600 case XED_REG_BNDCFGU: return RegisterInfo (XED_REG_BNDCFGU, 0 , 8 );
35223601 case XED_REG_BNDSTATUS: return RegisterInfo (XED_REG_BNDSTATUS, 0 , 8 );
0 commit comments