##############################################################################
#
# The following constants are automatically grabbed from the following file
# with command "./ghs_grabconstants.py":
#     ../registers/os_constants_internal.grd
#
# Please don't manually modify them.
#
# Date: Thu Mar 23 16:14:18 2023
#
##############################################################################


# PROCESSORS
class GHS_TargetIds:
    """ Describe MULTI target information."""
    #
    # Initialize object.
    #
    # Here is the formula to compose a target's ID:
    #     TargetId = (CpuMinorType<<16) | CpuFamilyType
    #
    # GHS: Validated
    #
    def __init__(self):
        #
        # SPARC family
        #
        # Major types
        self.Sparc = 0x0006;
        #
        # PowerPC family
        #
        # PowerPC Series
        self.PPC4xx_SERIES = 1;
        self.PPC5xx_SERIES = 2;
        self.PPC6xx_SERIES = 3;
        self.PPC7xx_SERIES = 4;
        self.PPC8xx_SERIES = 5;
        # PowerPC Chips
        # PPC Major types
        self.PPC32 = 0x0010;
        self.PPC64 = 0x002d;
        # PPC Major + Minor, Minor_
        self.PPC_POWER = 16;	# generic POWER RS6000 instruction set chip
        self.PPC601 = 0x00010010;	# MPC601 or PPC601
        self.PPC601_ = 0x0001;	# MPC601 or PPC601
        self.PPCRMCU500 = 0x00020010;	# RMCU 500
        self.PPCRMCU500_ = 0x0002;	# RMCU 500
        self.PPC403 = 0x00030010;
        self.PPC403_ = 0x0003;
        self.PPC603 = 0x00040010;
        self.PPC603_ = 0x0004;
        self.PPC604 = 0x00050010;
        self.PPC604_ = 0x0005;
        self.PPC602 = 0x00060010;	# MPC602/PPC602
        self.PPC602_ = 0x0006;	# MPC602/PPC602
        self.PPC821 = 0x00070010;
        self.PPC821_ = 0x0007;
        self.PPC860 = 0x00080010;
        self.PPC860_ = 0x0008;
        self.PPC740 = 0x00090010;	# Arthur
        self.PPC740_ = 0x0009;	# Arthur
        self.PPC750 = 0x000a0010;	# Arthur
        self.PPC750_ = 0x000a;	# Arthur
        self.PPC603e = 0x000b0010;
        self.PPC603e_ = 0x000b;
        self.PPC604e = 0x000c0010;
        self.PPC604e_ = 0x000c;
        self.PPC8260 = 0x000d0010;	# PowerQUICC II
        self.PPC8260_ = 0x000d;	# PowerQUICC II
        self.PPC8240 = 0x000e0010;	# Kahlua
        self.PPC8240_ = 0x000e;	# Kahlua
        self.PPC405 = 0x000f0010;
        self.PPC405_ = 0x000f;
        self.PPC555 = 0x00100010;	# Golden Oak
        self.PPC555_ = 0x0010;	# Golden Oak
        self.PPC755 = 0x00110010;
        self.PPC755_ = 0x0011;
        self.PPC7400 = 0x00120010;
        self.PPC7400_ = 0x0012;
        self.PPCec603e = 0x00130010;
        self.PPCec603e_ = 0x0013;
        self.PPC440 = 0x00140010;
        self.PPC440_ = 0x0014;
        self.PPC850 = 0x00150010;
        self.PPC850_ = 0x0015;
        self.PPC855T = 0x00160010;
        self.PPC855T_ = 0x0016;
        self.PPC505 = 0x00170010;
        self.PPC505_ = 0x0017;
        self.PPC509 = 0x00180010;
        self.PPC509_ = 0x0018;
        self.PPC401 = 0x00190010;
        self.PPC401_ = 0x0019;
        self.PPC823 = 0x001a0010;
        self.PPC823_ = 0x001a;
        self.PPC745 = 0x00210010;
        self.PPC745_ = 0x0021;
        self.PPC7410 = 0x001b0010;
        self.PPC7410_ = 0x001b;
        self.PPC7450 = 0x001c0010;
        self.PPC7450_ = 0x001c;
        self.PPC8245 = 0x001d0010;
        self.PPC8245_ = 0x001d;
        self.PPC823e = 0x001e0010;
        self.PPC823e_ = 0x001e;
        self.PPC857T = 0x001f0010;
        self.PPC857T_ = 0x001f;
        self.PPC862 = 0x00200010;
        self.PPC862_ = 0x0020;
        self.PPC7440 = 0x00220010;
        self.PPC7440_ = 0x0022;
        self.PPC8255 = 0x00230010;
        self.PPC8255_ = 0x0023;
        self.PPC8264 = 0x00240010;
        self.PPC8264_ = 0x0024;
        self.PPC8265 = 0x00250010;
        self.PPC8265_ = 0x0025;
        self.PPC8266 = 0x00260010;
        self.PPC8266_ = 0x0026;
        self.PPC8540 = 0x00270010;
        self.PPC8540_ = 0x0027;
        self.PPC7441 = 0x00280010;
        self.PPC7441_ = 0x0028;
        self.PPC7445 = 0x00290010;
        self.PPC7445_ = 0x0029;
        self.PPC7451 = 0x002a0010;
        self.PPC7451_ = 0x002a;
        self.PPC7455 = 0x002b0010;
        self.PPC7455_ = 0x002b;
        self.PPC8560 = 0x002c0010;	# PowerQUICC III
        self.PPC8560_ = 0x002c;	# PowerQUICC III
        self.PPC556 = 0x002d0010;
        self.PPC556_ = 0x002d;
        self.PPC561 = 0x002e0010;
        self.PPC561_ = 0x002e;
        self.PPC562 = 0x002f0010;
        self.PPC562_ = 0x002f;
        self.PPC563 = 0x00300010;
        self.PPC563_ = 0x0030;
        self.PPC564 = 0x00310010;
        self.PPC564_ = 0x0031;
        self.PPC565 = 0x00320010;
        self.PPC565_ = 0x0032;
        self.PPC566 = 0x00330010;
        self.PPC566_ = 0x0033;
        self.PPC8241 = 0x00340010;
        self.PPC8241_ = 0x0034;
        self.PPC8250 = 0x00350010;
        self.PPC8250_ = 0x0035;
        self.PPC857DSL = 0x00360010;
        self.PPC857DSL_ = 0x0036;
        self.PPCMGT560 = 0x00370010;
        self.PPCMGT560_ = 0x0037;
        self.PPC852T = 0x00380010;
        self.PPC852T_ = 0x0038;
        self.PPC859T = 0x00390010;
        self.PPC859T_ = 0x0039;
        self.PPC859DSL = 0x003a0010;
        self.PPC859DSL_ = 0x003a;
        self.PPC866P = 0x003b0010;
        self.PPC866P_ = 0x003b;
        self.PPC866T = 0x003c0010;
        self.PPC866T_ = 0x003c;
        self.PPC8270 = 0x003d0010;
        self.PPC8270_ = 0x003d;
        self.PPC8275 = 0x003e0010;
        self.PPC8275_ = 0x003e;
        self.PPC8280 = 0x003f0010;
        self.PPC8280_ = 0x003f;
        self.PPC7447 = 0x00400010;
        self.PPC7447_ = 0x0040;
        self.PPC7457 = 0x00410010;
        self.PPC7457_ = 0x0041;
        self.PPC5554 = 0x00420010;
        self.PPC5554_ = 0x0042;
        self.PPC533 = 0x00430010;
        self.PPC533_ = 0x0043;
        self.PPC534 = 0x00440010;
        self.PPC534_ = 0x0044;
        self.PPC535 = 0x00450010;
        self.PPC535_ = 0x0045;
        self.PPC536 = 0x00460010;
        self.PPC536_ = 0x0046;
        self.PPC440GX = 0x00470010;
        self.PPC440GX_ = 0x0047;
        self.PPC5200 = 0x00480010;
        self.PPC5200_ = 0x0048;
        self.PPC440EP = 0x00490010;
        self.PPC440EP_ = 0x0049;
        self.PPC970 = 0x004a0010;
        self.PPC970_ = 0x004a;
        self.PPC970FX = 0x004a0010;
        self.PPC970FX_ = 0x004a;
        self.PPC970_64 = 0x004a002d;
        self.PPC970FX_64 = 0x004a002d;
        self.PPC885 = 0x004b0010;
        self.PPC885_ = 0x004b;
        self.PPC880 = 0x004c0010;
        self.PPC880_ = 0x004c;
        self.PPC875 = 0x004d0010;
        self.PPC875_ = 0x004d;
        self.PPC870 = 0x004e0010;
        self.PPC870_ = 0x004e;
        self.PPC8247 = 0x004f0010;
        self.PPC8247_ = 0x004f;
        self.PPC8248 = 0x00500010;
        self.PPC8248_ = 0x0050;
        self.PPC8271 = 0x00510010;
        self.PPC8271_ = 0x0051;
        self.PPC8272 = 0x00520010;
        self.PPC8272_ = 0x0052;
        self.PPC5532 = 0x00530010;
        self.PPC5532_ = 0x0053;
        self.PPC5534 = 0x00540010;
        self.PPC5534_ = 0x0054;
        self.PPC5553 = 0x00550010;
        self.PPC5553_ = 0x0055;
        self.PPC7448 = 0x00560010;
        self.PPC7448_ = 0x0056;
        self.PPC8343 = 0x00570010;
        self.PPC8343_ = 0x0057;
        self.PPC8347 = 0x00580010;
        self.PPC8347_ = 0x0058;
        self.PPC8349 = 0x00590010;
        self.PPC8349_ = 0x0059;
        self.PPC8541 = 0x005a0010;
        self.PPC8541_ = 0x005a;
        self.PPC8543 = 0x005b0010;
        self.PPC8543_ = 0x005b;
        self.PPC8545 = 0x005c0010;
        self.PPC8545_ = 0x005c;
        self.PPC8547 = 0x005d0010;
        self.PPC8547_ = 0x005d;
        self.PPC8548 = 0x005e0010;
        self.PPC8548_ = 0x005e;
        self.PPC8555 = 0x005f0010;
        self.PPC8555_ = 0x005f;
        self.PPC8321 = 0x00600010;
        self.PPC8321_ = 0x0060;
        self.PPC8323 = 0x00610010;
        self.PPC8323_ = 0x0061;
        self.PPC8358 = 0x00620010;
        self.PPC8358_ = 0x0062;
        self.PPC8360 = 0x00630010;
        self.PPC8360_ = 0x0063;
        self.PPC8641 = 0x00640010;
        self.PPC8641_ = 0x0064;
        self.PPC5533 = 0x00650010;
        self.PPC5533_ = 0x0065;
        self.PPC5565 = 0x00660010;
        self.PPC5565_ = 0x0066;
        self.PPC5566 = 0x00670010;
        self.PPC5566_ = 0x0067;
        self.PPC5567 = 0x00680010;
        self.PPC5567_ = 0x0068;
        self.PPC5514 = 0x00690010;
        self.PPC5514_ = 0x0069;
        self.PPC5516 = 0x006a0010;
        self.PPC5516_ = 0x006a;
        self.PPC8313 = 0x006b0010;
        self.PPC8313_ = 0x006b;
        self.PPC5561 = 0x006c0010;
        self.PPC5561_ = 0x006c;
        self.PPC8533 = 0x006d0010;
        self.PPC8533_ = 0x006d;
        self.PPC8568 = 0x006e0010;
        self.PPC8568_ = 0x006e;
        self.PPC8314 = 0x006f0010;
        self.PPC8314_ = 0x006f;
        self.PPC8315 = 0x00700010;
        self.PPC8315_ = 0x0070;
        self.PPC8377 = 0x00710010;
        self.PPC8377_ = 0x0071;
        self.PPC8378 = 0x00720010;
        self.PPC8378_ = 0x0072;
        self.PPC8379 = 0x00730010;
        self.PPC8379_ = 0x0073;
        self.PPC440X5 = 0x00740010;
        self.PPC440X5_ = 0x0074;
        self.PPC5121 = 0x00750010;
        self.PPC5121_ = 0x0075;
        self.PPC8544 = 0x00760010;
        self.PPC8544_ = 0x0076;
        self.PPC8567 = 0x00770010;
        self.PPC8567_ = 0x0077;
        self.PPC8572 = 0x00780010;
        self.PPC8572_ = 0x0078;
        self.PPCPA6T = 0x00790010;
        self.PPCPA6T_ = 0x0079;
        self.PPC5123 = 0x007a0010;
        self.PPC5123_ = 0x007a;
        self.PPC8610 = 0x007b0010;
        self.PPC8610_ = 0x007b;
        self.PPC5515 = 0x007c0010;
        self.PPC5515_ = 0x007c;
        self.PPC5517 = 0x007d0010;
        self.PPC5517_ = 0x007d;
        self.PPCP4080 = 0x007f0010;
        self.PPCP4080_ = 0x007f;
        self.PPC560xB = 0x00800010;
        self.PPC560xB_ = 0x0080;
        self.PPC560xP = 0x00810010;
        self.PPC560xP_ = 0x0081;
        self.PPC560xS = 0x00820010;
        self.PPC560xS_ = 0x0082;
        self.PPC563xM = 0x00830010;
        self.PPC563xM_ = 0x0083;
        self.PPC440EPx = 0x00840010;
        self.PPC440EPx_ = 0x0084;
        self.PPC440GRx = 0x00850010;
        self.PPC440GRx_ = 0x0085;
        self.PPC440SP = 0x00860010;
        self.PPC440SP_ = 0x0086;
        self.PPC440SPe = 0x00870010;
        self.PPC440SPe_ = 0x0087;
        self.PPC460EX = 0x00880010;
        self.PPC460EX_ = 0x0088;
        self.PPC460GT = 0x00890010;
        self.PPC460GT_ = 0x0089;
        self.PPC460GTx = 0x008a0010;
        self.PPC460GTx_ = 0x008a;
        self.PPC460SX = 0x008b0010;
        self.PPC460SX_ = 0x008b;
        self.PPC5668 = 0x008c0010;
        self.PPC5668_ = 0x008c;
        self.PPC8536 = 0x008d0010;
        self.PPC8536_ = 0x008d;
        self.PPC8569 = 0x008e0010;
        self.PPC8569_ = 0x008e;
        self.PPC8640 = 0x008f0010;
        self.PPC8640_ = 0x008f;
        self.PPCP1010 = 0x00900010;
        self.PPCP1010_ = 0x0090;
        self.PPCP1011 = 0x00910010;
        self.PPCP1011_ = 0x0091;
        self.PPCP1020 = 0x00920010;
        self.PPCP1020_ = 0x0092;
        self.PPCP1021 = 0x00930010;
        self.PPCP1021_ = 0x0093;
        self.PPCP2010 = 0x00940010;
        self.PPCP2010_ = 0x0094;
        self.PPCP2020 = 0x00950010;
        self.PPCP2020_ = 0x0095;
        self.PPC5668z0 = 0x00960010;
        self.PPC5668z0_ = 0x0096;
        self.PPC5646 = 0x00970010;
        self.PPC5646_ = 0x0097;
        self.PPC564xA = 0x00980010;
        self.PPC564xA_ = 0x0098;
        self.PPC5674M = 0x00990010;
        self.PPC5674M_ = 0x0099;
        self.PPC476FP = 0x009a0010;
        self.PPC476FP_ = 0x009a;
        self.PPC567xF = 0x009b0010;
        self.PPC567xF_ = 0x009b;
        self.PPC567xK = 0x009c0010;
        self.PPC567xK_ = 0x009c;
        self.PPC564xL = 0x009d0010;
        self.PPC564xL_ = 0x009d;
        self.PPC440GR = 0x009f0010;
        self.PPC440GR_ = 0x009f;
        self.APM80186 = 0x00a00010;
        self.APM80186_ = 0x00a0;
        self.APM80187 = 0x00a10010;
        self.APM80187_ = 0x00a1;
        self.APM82181 = 0x00a20010;
        self.APM82181_ = 0x00a2;
        self.PPCP1012 = 0x00a30010;
        self.PPCP1012_ = 0x00a3;
        self.PPCP1013 = 0x00a40010;
        self.PPCP1013_ = 0x00a4;
        self.PPCP1014 = 0x00a50010;
        self.PPCP1014_ = 0x00a5;
        self.PPCP1017 = 0x00a60010;
        self.PPCP1017_ = 0x00a6;
        self.PPCP1022 = 0x00a70010;
        self.PPCP1022_ = 0x00a7;
        self.PPCP1023 = 0x00a80010;
        self.PPCP1023_ = 0x00a8;
        self.PPCP2040 = 0x00a90010;
        self.PPCP2040_ = 0x00a9;
        self.PPCP3041 = 0x00aa0010;
        self.PPCP3041_ = 0x00aa;
        self.PPCP4040 = 0x00ab0010;
        self.PPCP4040_ = 0x00ab;
        self.PPCP5010 = 0x00ac0010;
        self.PPCP5010_ = 0x00ac;
        self.PPCP5020 = 0x00ad0010;
        self.PPCP5020_ = 0x00ad;
        self.PPC564xS = 0x00ae0010;
        self.PPC564xS_ = 0x00ae;
        self.PPC5125 = 0x00af0010;
        self.PPC5125_ = 0x00af;
        self.PPCE300C4_GENERIC = 0x00b00010;
        self.PPCE300C4_GENERIC_ = 0x00b0;
        self.PPCE500V1_GENERIC = 0x00b10010;
        self.PPCE500V1_GENERIC_ = 0x00b1;
        self.PPCE500V2_GENERIC = 0x00b20010;
        self.PPCE500V2_GENERIC_ = 0x00b2;
        self.PPCE600_GENERIC = 0x00b30010;
        self.PPCE600_GENERIC_ = 0x00b3;
        self.PPC405_GENERIC = 0x00b40010;
        self.PPC405_GENERIC_ = 0x00b4;
        self.PPC440X4_GENERIC = 0x00b50010;
        self.PPC440X4_GENERIC_ = 0x00b5;
        self.PPC440X5_GENERIC = 0x00b60010;
        self.PPC440X5_GENERIC_ = 0x00b6;
        self.PPC440X5_FPU_GENERIC = 0x00b70010;
        self.PPC440X5_FPU_GENERIC_ = 0x00b7;
        self.PPC464_GENERIC = 0x00b80010;
        self.PPC464_GENERIC_ = 0x00b8;
        self.PPC464_FPU_GENERIC = 0x00b90010;
        self.PPC464_FPU_GENERIC_ = 0x00b9;
        self.PPC476FP_GENERIC = 0x00ba0010;
        self.PPC476FP_GENERIC_ = 0x00ba;
        self.PPCE200Z1_GENERIC = 0x00bb0010;
        self.PPCE200Z1_GENERIC_ = 0x00bb;
        self.PPCE200Z3_GENERIC = 0x00bc0010;
        self.PPCE200Z3_GENERIC_ = 0x00bc;
        self.PPCE200Z6_GENERIC = 0x00bd0010;
        self.PPCE200Z6_GENERIC_ = 0x00bd;
        self.PPCE200Z0_GENERIC = 0x00bf0010;
        self.PPCE200Z0_GENERIC_ = 0x00bf;
        self.PPCE200Z4D_GENERIC = 0x00c00010;
        self.PPCE200Z4D_GENERIC_ = 0x00c0;
        self.PPCE200Z7_GENERIC = 0x00c10010;
        self.PPCE200Z7_GENERIC_ = 0x00c1;
        self.PPCE300C3_GENERIC = 0x00c20010;
        self.PPCE300C3_GENERIC_ = 0x00c2;
        self.PPCE300C1_GENERIC = 0x00c30010;
        self.PPCE300C1_GENERIC_ = 0x00c3;
        self.PPCE300C2_GENERIC = 0x00c40010;
        self.PPCE300C2_GENERIC_ = 0x00c4;
        self.PPC970_GENERIC = 0x00c50010;
        self.PPC970_GENERIC_ = 0x00c5;
        self.PPC750_GENERIC = 0x00c60010;
        self.PPC750_GENERIC_ = 0x00c6;
        self.PPCE500MC_GENERIC = 0x00c70010;
        self.PPCE500MC_GENERIC_ = 0x00c7;
        self.PPCE500MC_64_GENERIC = 0x00c80010;
        self.PPCE500MC_64_GENERIC_ = 0x00c8;
        self.PPC440X6_FPU_GENERIC = 0x00c90010;
        self.PPC440X6_FPU_GENERIC_ = 0x00c9;
        self.PPCE200Z335_GENERIC = 0x00ca0010;
        self.PPCE200Z335_GENERIC_ = 0x00ca;
        self.PPC560xE = 0x00cc0010;
        self.PPC560xE_ = 0x00cc;
        self.PPC564xB = 0x00cd0010;
        self.PPC564xB_ = 0x00cd;
        self.PPC564xC = 0x00ce0010;
        self.PPC564xC_ = 0x00ce;
        self.PPC564xCz0 = 0x00cf0010;
        self.PPC564xCz0_ = 0x00cf;
        self.PPC567xR = 0x00d00010;
        self.PPC567xR_ = 0x00d0;
        self.PPC560xC = 0x00d10010;
        self.PPC560xC_ = 0x00d1;
        self.PPC560xD = 0x00d20010;
        self.PPC560xD_ = 0x00d2;
        self.PPCP2041 = 0x00d30010;
        self.PPCP2041_ = 0x00d3;
        self.PXS20 = 0x00d40010;
        self.PXS20_ = 0x00d4;
        self.PXD20 = 0x00d50010;
        self.PXD20_ = 0x00d5;
        self.PXD10 = 0x00d60010;
        self.PXD10_ = 0x00d6;
        self.PXN20 = 0x00d70010;
        self.PXN20_ = 0x00d7;
        self.PXR40 = 0x00d80010;
        self.PXR40_ = 0x00d8;
        self.PXS30 = 0x00d90010;
        self.PXS30_ = 0x00d9;
        self.PXN20z0 = 0x00da0010;
        self.PXN20z0_ = 0x00da;
        self.PPC8306 = 0x00db0010;
        self.PPC8306_ = 0x00db;
        self.PPC8308 = 0x00dc0010;
        self.PPC8308_ = 0x00dc;
        self.PPC8309 = 0x00dd0010;
        self.PPC8309_ = 0x00dd;
        self.APM86190 = 0x00de0010;
        self.APM86190_ = 0x00de;
        self.APM86290 = 0x00df0010;
        self.APM86290_ = 0x00df;
        self.PPCT4240 = 0x00e00010;
        self.PPCT4240_ = 0x00e0;
        self.PPC465_GENERIC = 0x00e10010;
        self.PPC465_GENERIC_ = 0x00e1;
        self.PPCE6500_GENERIC = 0x00e20010;
        self.PPCE6500_GENERIC_ = 0x00e2;
        self.PPC5746Mz425 = 0x00e30010;
        self.PPC5746Mz425_ = 0x00e3;
        self.PPC5746Mz420 = 0x00e40010;
        self.PPC5746Mz420_ = 0x00e4;
        self.PPC5746Mz0 = 0x00e50010;
        self.PPC5746Mz0_ = 0x00e5;
        self.PPC5744Kz420 = 0x00e60010;
        self.PPC5744Kz420_ = 0x00e6;
        self.PPC5744Kz225 = 0x00e70010;
        self.PPC5744Kz225_ = 0x00e7;
        self.PPC5744P = 0x00e80010;
        self.PPC5744P_ = 0x00e8;
        self.PPC5777Mz720 = 0x00e90010;
        self.PPC5777Mz720_ = 0x00e9;
        self.PPC5777Mz425 = 0x00ea0010;
        self.PPC5777Mz425_ = 0x00ea;
        self.PPC5777Mz0 = 0x00eb0010;
        self.PPC5777Mz0_ = 0x00eb;
        self.PPC5726L = 0x00ec0010;
        self.PPC5726L_ = 0x00ec;
        self.PPCE200Z215_GENERIC = 0x00ed0010;
        self.PPCE200Z215_GENERIC_ = 0x00ed;
        self.PPCE200Z225_GENERIC = 0x00ee0010;
        self.PPCE200Z225_GENERIC_ = 0x00ee;
        self.PPCE200Z420_GENERIC = 0x00ef0010;
        self.PPCE200Z420_GENERIC_ = 0x00ef;
        self.PPCE200Z425_GENERIC = 0x00f00010;
        self.PPCE200Z425_GENERIC_ = 0x00f0;
        self.PPCE200Z720_GENERIC = 0x00f10010;
        self.PPCE200Z720_GENERIC_ = 0x00f1;
        self.APM86491 = 0x00f20010;
        self.APM86491_ = 0x00f2;
        self.APM86791 = 0x00f30010;
        self.APM86791_ = 0x00f3;
        self.APM86691 = 0x00f40010;
        self.APM86691_ = 0x00f4;
        self.APM86692 = 0x00f50010;
        self.APM86692_ = 0x00f5;
        self.PPCP5040 = 0x00f60010;
        self.PPCP5040_ = 0x00f6;
        self.PPC5514z0 = 0x00f70010;
        self.PPC5514z0_ = 0x00f7;
        self.PPC5515z0 = 0x00f80010;
        self.PPC5515z0_ = 0x00f8;
        self.PPC5516z0 = 0x00f90010;
        self.PPC5516z0_ = 0x00f9;
        self.PPC5517z0 = 0x00fa0010;
        self.PPC5517z0_ = 0x00fa;
        self.PPC5748Gz210 = 0x00fb0010;
        self.PPC5748Gz210_ = 0x00fb;
        self.PPC5748Gz4204 = 0x00fc0010;
        self.PPC5748Gz4204_ = 0x00fc;
        self.PPC5746R = 0x00fd0010;
        self.PPC5746R_ = 0x00fd;
        self.PPCT4160 = 0x00fe0010;
        self.PPCT4160_ = 0x00fe;
        self.PPC5775Kz4201 = 0x00ff0010;
        self.PPC5775Kz4201_ = 0x00ff;
        self.PPC5775Kz7260 = 0x01000010;
        self.PPC5775Kz7260_ = 0x0100;
        self.PPCE200Z420S_GENERIC = 0x01010010;
        self.PPCE200Z420S_GENERIC_ = 0x0101;
        self.PPCE200Z425S_GENERIC = 0x01020010;
        self.PPCE200Z425S_GENERIC_ = 0x0102;
        self.PPCE200Z720S_GENERIC = 0x01030010;
        self.PPCE200Z720S_GENERIC_ = 0x0103;
        self.PPCE200Z420D_GENERIC = 0x01040010;
        self.PPCE200Z420D_GENERIC_ = 0x0104;
        self.PPCE200Z425D_GENERIC = 0x01050010;
        self.PPCE200Z425D_GENERIC_ = 0x0105;
        self.PPCE200Z720D_GENERIC = 0x01060010;
        self.PPCE200Z720D_GENERIC_ = 0x0106;
        self.PPCE200Z210_GENERIC = 0x01070010;
        self.PPCE200Z210_GENERIC_ = 0x0107;
        self.PPCE200Z4201_GENERIC = 0x01080010;
        self.PPCE200Z4201_GENERIC_ = 0x0108;
        self.PPCE200Z4204_GENERIC = 0x01090010;
        self.PPCE200Z4204_GENERIC_ = 0x0109;
        self.PPCE200Z7260_GENERIC = 0x010a0010;
        self.PPCE200Z7260_GENERIC_ = 0x010a;
        self.PPC5777C = 0x010b0010;
        self.PPC5777C_ = 0x010b;
        self.PPC5744Kz410 = 0x010c0010;
        self.PPC5744Kz410_ = 0x010c;
        self.PPC5746Mz410 = 0x010d0010;
        self.PPC5746Mz410_ = 0x010d;
        self.PPC5744Pz425 = 0x010e0010;
        self.PPC5744Pz425_ = 0x010e;
        self.PPC5777Mz710 = 0x010f0010;
        self.PPC5777Mz710_ = 0x010f;
        self.PPCT1020 = 0x01100010;
        self.PPCT1020_ = 0x0110;
        self.PPCT1022 = 0x01110010;
        self.PPCT1022_ = 0x0111;
        self.PPCT1040 = 0x01120010;
        self.PPCT1040_ = 0x0112;
        self.PPCT1042 = 0x01130010;
        self.PPCT1042_ = 0x0113;
        self.PPCT2080 = 0x01140010;
        self.PPCT2080_ = 0x0114;
        self.PPC460S = 0x01150010;
        self.PPC460S_ = 0x0115;
        self.PPC460S_FPU = 0x01160010;
        self.PPC460S_FPU_ = 0x0116;
        self.PPC574xB = 0x01170010;
        self.PPC574xB_ = 0x0117;
        self.PPC574xCz4204 = 0x01180010;
        self.PPC574xCz4204_ = 0x0118;
        self.PPC574xCz210 = 0x01190010;
        self.PPC574xCz210_ = 0x0119;
        self.PPC574xGz4204 = 0x011a0010;
        self.PPC574xGz4204_ = 0x011a;
        self.PPC574xGz210 = 0x011b0010;
        self.PPC574xGz210_ = 0x011b;
        self.PPC577xKz4201 = 0x011c0010;
        self.PPC577xKz4201_ = 0x011c;
        self.PPC577xKz7260 = 0x011d0010;
        self.PPC577xKz7260_ = 0x011d;
        # PowerPC FPU coprocessors
        self.FP_PPC_FORCE_FPU = 1;
        self.FP_PPC_FORCE_NO_FPU = 2;
        #
        # PowerPC cores
        #
        self.PPC_CORE_E500V1 = 1;
        self.PPC_CORE_E500V2 = 2;
        self.PPC_CORE_E600 = 3;
        self.PPC_CORE_405 = 4;
        self.PPC_CORE_440X4 = 5;
        self.PPC_CORE_440X5 = 6;
        self.PPC_CORE_440X5_FPU = 7;
        self.PPC_CORE_464 = 8;
        self.PPC_CORE_464_FPU = 9;
        self.PPC_CORE_476FP = 10;
        self.PPC_CORE_E200Z1 = 11;
        self.PPC_CORE_E200Z3 = 12;
        self.PPC_CORE_E200Z6 = 13;
        self.PPC_CORE_E200Z0 = 15;
        self.PPC_CORE_E200Z4D = 16;
        self.PPC_CORE_E200Z7 = 17;
        self.PPC_CORE_E300C3 = 18;
        self.PPC_CORE_E300C1 = 19;
        self.PPC_CORE_E300C2 = 20;
        self.PPC_CORE_970 = 21;
        self.PPC_CORE_750 = 22;
        self.PPC_CORE_E500MC = 23;
        self.PPC_CORE_E500MC_64 = 24;
        self.PPC_CORE_440X6_FPU = 25;
        self.PPC_CORE_E200Z335 = 26;
        self.PPC_CORE_E300C4 = 27;
        self.PPC_CORE_465 = 28;
        self.PPC_CORE_E6500 = 29;
        self.PPC_CORE_E200Z215 = 30;
        self.PPC_CORE_E200Z225 = 31;
        self.PPC_CORE_E200Z420 = 32;
        self.PPC_CORE_E200Z425 = 33;
        self.PPC_CORE_E200Z720 = 34;
        self.PPC_CORE_E200Z420S = 35;
        self.PPC_CORE_E200Z425S = 36;
        self.PPC_CORE_E200Z720S = 37;
        self.PPC_CORE_E200Z420D = 38;
        self.PPC_CORE_E200Z425D = 39;
        self.PPC_CORE_E200Z720D = 40;
        self.PPC_CORE_E200Z210 = 41;
        self.PPC_CORE_E200Z4201 = 42;
        self.PPC_CORE_E200Z4204 = 43;
        self.PPC_CORE_E200Z7260 = 44;
        #
        # ARM family
        #
        self.ARM_7 = 0x00000018;
        self.ARM_7M = 0x00010018;
        self.ARM_7TM = 0x00020018;
        self.ARM_8 = 0x00030018;
        self.ARM_SA1 = 0x00040018;
        self.ARM_6 = 0x00050018;
        self.ARM_9 = 0x00060018;
        self.ARM_10 = 0x00070018;
        self.ARM_VE = 0x00080018;
        self.ARM_XSCALE = 0x00090018;
        self.ARM_11 = 0x000A0018;
        self.ARM_9E = 0x000B0018;
        self.ARM_720 = 0x000C0018;
        self.ARM_920 = 0x000D0018;
        self.ARM_925 = 0x000E0018;
        self.ARM_926 = 0x000F0018;
        self.ARM_940 = 0x00100018;
        self.ARM_946 = 0x00110018;
        self.ARM_966 = 0x00120018;
        self.ARM_1020 = 0x00130018;
        self.XSCALE_80200 = 0x00140018;
        self.XSCALE_IOP321 = 0x00150018;
        self.XSCALE_PXA210 = 0x00160018;
        self.XSCALE_PXA250 = 0x00170018;
        self.XSCALE_IXP425 = 0x00180018;
        self.ARM_MAC7101 = 0x00190018;
        self.ARM_MAC7111 = 0x001a0018;
        self.ARM_MAC7121 = 0x001b0018;
        self.ARM_MAC7131 = 0x001c0018;
        self.ARM_MAC7141 = 0x001d0018;
        self.SIGMA_STMP36XX = 0x001e0018;
        self.ARM_11T2 = 0x001f0018;
        self.ARM_1136 = 0x00200018;
        self.XSCALE_IXP2350 = 0x00210018;
        self.XSCALE_IXP2400 = 0x00220018;
        self.XSCALE_IXP2800 = 0x00230018;
        self.XSCALE_PXA270 = 0x00240018;
        self.ARM_CORTEXM3 = 0x00250018;
        self.XSCALE_80219 = 0x00260018;
        self.XSCALE_80321 = 0x00270018;
        self.XSCALE_80331 = 0x00280018;
        self.ARM_FEROCEON = 0x00290018;
        self.ARM_7TDMI_S = 0x002a0018;
        self.XSCALE_PXA255 = 0x002b0018;
        self.ARM_CORTEXA8 = 0x002c0018;
        self.ARM_CORTEXR4 = 0x002d0018;
        self.ARM_1176JZFS = 0x002e0018;
        self.ARM_1176JZS = 0x002f0018;
        self.ARM_CORTEXA9 = 0x00300018;
        self.ARM_CORTEXM0 = 0x00310018;
        self.ARM_CORTEXM1 = 0x00320018;
        self.ARM_PJ4 = 0x00330018;
        self.ARM_PJ4V6 = 0x00340018;
        self.ARM_11MP = 0x00350018;
        self.ARM_CORTEXM4 = 0x00360018;
        self.ARM_CORTEXA5 = 0x00370018;
        self.ARM_CORTEXA15 = 0x00380018;
        self.ARM_V6M = 0x00390018;
        self.ARM_CORTEXA = 0x003a0018;
        self.ARM_V4 = 0x003b0018;
        self.ARM_V4T = 0x003c0018;
        self.ARM_V5 = 0x003d0018;
        self.ARM_CORTEXR = 0x003f0018;
        self.ARM_CORTEXR5 = 0x00400018;
        self.ARM_CORTEXR7 = 0x00410018;
        self.ARM_CORTEXA7 = 0x00420018;
        self.ARM_CORTEXM0PLUS = 0x00430018;
        self.ARM_CORTEXM4F = 0x00440018;
        self.ARM_CORTEXR4F = 0x00450018;
        self.ARM_CORTEXA12 = 0x00460018;
        self.ARM_CORTEXA17 = 0x00470018;
        self.ARM_CORTEXAV8 = 0x00480018;
        self.ARM_CORTEXA53 = 0x00490018;
        self.ARM_CORTEXA57 = 0x004a0018;
        self.ARM_CORTEXR5F = 0x004b0018;
        self.ARM_CORTEXM7 = 0x004c0018;
        self.ARM_CORTEXA72 = 0x00510018;
        self.ARM_CORTEXA73 = 0x00520018;
        self.ARM_CORTEXM23 = 0x00590018;
        self.ARM_CORTEXM33 = 0x005a0018;
        self.ARM_CORTEXA55 = 0x005b0018;
        self.ARM_CORTEXA75 = 0x005c0018;
        self.ARM_KRYO = 0x005d0018;
        self.ARM_CORTEXM35P = 0x005e0018;
        self.ARM_CORTEXA76 = 0x005f0018;
        self.ARM_CORTEXA76AE = 0x00600018;
        self.ARM_KRYO280G = 0x00610018;
        self.ARM_KRYO250G = 0x00620018;
        self.ARM_KRYO250S = 0x00630018;
        self.ARM_KRYO260G = 0x00640018;
        self.ARM_KRYO260S = 0x00650018;
        self.ARM_KRYO360G = 0x00660018;
        self.ARM_KRYO360S = 0x00670018;
        self.ARM_KRYO385G = 0x00680018;
        self.ARM_KRYO385S = 0x00690018;
        self.ARM_KRYO460G = 0x006a0018;
        self.ARM_KRYO460S = 0x006b0018;
        self.ARM_KRYO280S = 0x006c0018;
        self.ARM_CORTEXA77 = 0x006d0018;
        self.ARM_CORTEXA78 = 0x006e0018;
        self.ARM_CORTEXX1 = 0x006f0018;
        self.ARM_KRYO465G = 0x00700018;
        self.ARM_KRYO465S = 0x00710018;
        self.ARM_KRYO468G = 0x00720018;
        self.ARM_KRYO468S = 0x00730018;
        self.ARM_KRYO470G = 0x00740018;
        self.ARM_KRYO470S = 0x00750018;
        self.ARM_KRYO475G = 0x00760018;
        self.ARM_KRYO475S = 0x00770018;
        self.ARM_KRYO485G = 0x00780018;
        self.ARM_KRYO485S = 0x00790018;
        self.ARM_KRYO490G = 0x007a0018;
        self.ARM_KRYO490S = 0x007b0018;
        self.ARM_KRYO495G = 0x007c0018;
        self.ARM_KRYO495S = 0x007d0018;
        self.ARM_KRYO585G = 0x007e0018;
        self.ARM_KRYO585S = 0x007f0018;
        self.ARM_CORTEXR8 = 0x00800018;
        self.ARM_CORTEXRV8 = 0x00810018;
        self.ARM_CORTEXR52 = 0x00820018;
        self.ARM_CORTEXA32 = 0x00830018;
        self.ARM_CORTEXA35 = 0x00840018;
        self.ARM_CORTEXA78AE = 0x00850018;
        self.ARM_CORTEXA78C = 0x00860018;
        self.ARM_CORTEXA710 = 0x00870018;
        self.ARM_NEOVERSEN1 = 0x00880018;
        self.ARM_NEOVERSEN2 = 0x00890018;
        self.ARM_NEOVERSEV1 = 0x008A0018;
        self.ARM_KRYO560G = 0x008B0018;
        self.ARM_KRYO560S = 0x008C0018;
        self.ARM_KRYO570G = 0x008D0018;
        self.ARM_KRYO570S = 0x008E0018;
        self.ARM_KRYO680P = 0x008F0018;
        self.ARM_KRYO680G = 0x00900018;
        self.ARM_KRYO680S = 0x00910018;
        self.ARM_KRYO670P = 0x00920018;
        self.ARM_KRYO670G = 0x00930018;
        self.ARM_KRYO670S = 0x00940018;
        self.ARM_CORTEXM55 = 0x00950018;
        self.ARM_CORTEXM85 = 0x00960018;
        self.ARM_CORTEXX1C = 0x00970018;
        self.ARM_CORTEXX3 = 0x00980018;
        self.ARM_NEOVERSEV2 = 0x00990018;
        #
        # ARM Core IDs
        #
        self.ARM_CORE_ARM7TM = 1;
        self.ARM_CORE_ARM8 = 2;
        self.ARM_CORE_ARM9 = 3;
        self.ARM_CORE_ARM9E = 4;
        self.ARM_CORE_ARM10 = 5;
        self.ARM_CORE_STRONGARM = 6;
        self.ARM_CORE_XSCALE = 7;
        self.ARM_CORE_ARM11 = 8;
        self.ARM_CORE_ARM11T2 = 9;
        self.ARM_CORE_CORTEXM0 = 10;
        self.ARM_CORE_CORTEXM1 = 11;
        self.ARM_CORE_CORTEXM3 = 12;
        self.ARM_CORE_CORTEXM4 = 13;
        self.ARM_CORE_CORTEXR4 = 14;
        self.ARM_CORE_CORTEXA5 = 15;
        self.ARM_CORE_CORTEXA8 = 16;
        self.ARM_CORE_CORTEXA9 = 17;
        self.ARM_CORE_CORTEXA15 = 18;
        self.ARM_CORE_FEROCEON = 19;
        self.ARM_CORE_PJ4 = 20;
        self.ARM_CORE_PJ4V6 = 21;
        self.ARM_CORE_ARMV6M = 22;
        self.ARM_CORE_CORTEXA = 23;
        self.ARM_CORE_ARMV4 = 24;
        self.ARM_CORE_ARMV4T = 25;
        self.ARM_CORE_ARMV5 = 26;
        self.ARM_CORE_CORTEXR = 27;
        self.ARM_CORE_CORTEXR5 = 28;
        self.ARM_CORE_CORTEXR7 = 29;
        self.ARM_CORE_CORTEXA7 = 30;
        self.ARM_CORE_CORTEXM0PLUS = 31;
        self.ARM_CORE_CORTEXM4F = 32;
        self.ARM_CORE_CORTEXR4F = 33;
        self.ARM_CORE_CORTEXA12 = 34;
        self.ARM_CORE_CORTEXA17 = 35;
        self.ARM_CORE_CORTEXAV8 = 36;
        self.ARM_CORE_CORTEXA53 = 37;
        self.ARM_CORE_CORTEXA57 = 38;
        self.ARM_CORE_CORTEXR5F = 39;
        self.ARM_CORE_CORTEXM7 = 40;
        self.ARM_CORE_CORTEXR8 = 41;
        self.ARM_CORE_CORTEXA32 = 42;
        self.ARM_CORE_CORTEXA35 = 43;
        self.ARM_CORE_CORTEXRV8 = 44;
        self.ARM_CORE_CORTEXR52 = 45;
        self.ARM_CORE_CORTEXA72 = 46;
        self.ARM_CORE_CORTEXA73 = 47;
        self.ARM_CORE_CORTEXM23 = 49;
        self.ARM_CORE_CORTEXM33 = 50;
        self.ARM_CORE_CORTEXA55 = 51;
        self.ARM_CORE_CORTEXA75 = 52;
        self.ARM_CORE_KRYO = 53;
        self.ARM_CORE_CORTEXM35P = 54;
        self.ARM_CORE_CORTEXA76 = 55;
        self.ARM_CORE_CORTEXA76AE = 56;
        self.ARM_CORE_KRYO280G = 57;
        self.ARM_CORE_KRYO250G = 58;
        self.ARM_CORE_KRYO250S = 59;
        self.ARM_CORE_KRYO260G = 60;
        self.ARM_CORE_KRYO260S = 61;
        self.ARM_CORE_KRYO360G = 62;
        self.ARM_CORE_KRYO360S = 63;
        self.ARM_CORE_KRYO385G = 64;
        self.ARM_CORE_KRYO385S = 65;
        self.ARM_CORE_KRYO460G = 66;
        self.ARM_CORE_KRYO460S = 67;
        self.ARM_CORE_KRYO280S = 68;
        self.ARM_CORE_CORTEXA77 = 69;
        self.ARM_CORE_CORTEXA78 = 70;
        self.ARM_CORE_CORTEXX1 = 71;
        self.ARM_CORE_KRYO465G = 72;
        self.ARM_CORE_KRYO465S = 73;
        self.ARM_CORE_KRYO468G = 74;
        self.ARM_CORE_KRYO468S = 75;
        self.ARM_CORE_KRYO470G = 76;
        self.ARM_CORE_KRYO470S = 77;
        self.ARM_CORE_KRYO475G = 78;
        self.ARM_CORE_KRYO475S = 79;
        self.ARM_CORE_KRYO485G = 80;
        self.ARM_CORE_KRYO485S = 81;
        self.ARM_CORE_KRYO490G = 82;
        self.ARM_CORE_KRYO490S = 83;
        self.ARM_CORE_KRYO495G = 84;
        self.ARM_CORE_KRYO495S = 85;
        self.ARM_CORE_KRYO585G = 86;
        self.ARM_CORE_KRYO585S = 87;
        self.ARM_CORE_CORTEXA78AE = 88;
        self.ARM_CORE_CORTEXA78C = 89;
        self.ARM_CORE_CORTEXA710 = 90;
        self.ARM_CORE_NEOVERSEN1 = 91;
        self.ARM_CORE_NEOVERSEN2 = 92;
        self.ARM_CORE_NEOVERSEV1 = 93;
        self.ARM_CORE_KRYO560G = 94;
        self.ARM_CORE_KRYO560S = 95;
        self.ARM_CORE_KRYO570G = 96;
        self.ARM_CORE_KRYO570S = 97;
        self.ARM_CORE_KRYO680P = 98;
        self.ARM_CORE_KRYO680G = 99;
        self.ARM_CORE_KRYO680S = 100;
        self.ARM_CORE_KRYO670P = 101;
        self.ARM_CORE_KRYO670G = 102;
        self.ARM_CORE_KRYO670S = 103;
        self.ARM_CORE_CORTEXM55 = 104;
        self.ARM_CORE_CORTEXM85 = 105;
        self.ARM_CORE_CORTEXX1C = 106;
        self.ARM_CORE_CORTEXX3 = 107;
        self.ARM_CORE_NEOVERSEV2 = 108;
        #
        # V800 family
        #
        self.V810 = 0x00000008;
        self.V810U = 0x00050008;
        self.V820 = 0x00060008;
        self.V830 = 0x00010008;
        self.V850 = 0x0002000e;
        self.V850E = 0x0003000e;
        self.V850E1F = 0x0007000e;
        self.V850E2 = 0x0008000e;
        self.V850E2R = 0x0009000e;
        self.V850E2RV3 = 0x000a000e;
        self.V850E3V5 = 0x000d000e;
        self.V850E2RV4 = 0x000e000e;
        self.RH850G3M = 0x000f000e;
        self.RH850G3H = 0x0010000e;
        self.RH850G3K = 0x0011000e;
        self.RH850G3MH = 0x0013000e;
        self.RH850G3KH = 0x0014000e;
        self.RH850G4 = 0x0015000e;
        self.RH850G4MH = 0x0016000e;
        self.RH850G4KH = 0x0017000e;
        #
        # V800 cores
        #
        self.V800_CORE_V850 = 1;
        self.V800_CORE_V850E = 2;
        self.V800_CORE_V850E2 = 4;
        self.V800_CORE_V850E2R = 5;
        self.V800_CORE_V850E2V3 = 6;
        self.V800_CORE_V850E3V5 = 7;
        self.V800_CORE_RH850G4 = 8;
        # V800/RH850 Coprocessors
        self.RH850_FPU = 1;
        self.RH850_SIMD = 2;
        self.RH850_MMU = 4;
        self.RH850_MPU = 8;
        self.RH850_FPSIMD = 16;
        self.RH850_VM = 32;
        # MIPS Series
        self.MIPSPROC32 = 0;
        self.MIPSLE64 = 1;
        self.MIPSBE64 = 2;
        # MIPS "Coprocessors"
        self.COP_REV2 = 4;
        self.COP_CPU32FPU64 = 2;
        #
        # MIPS family
        #
        self.R3000 = 0x0000000a;
        self.R4000 = 0x0001000a;
        self.R4000_64 = 0x0002000a;
        self.R3900 = 0x0003000a;
        self.R4650 = 0x0004000a;
        self.R4200 = 0x0005000a;
        self.R4300 = 0x0006000a;
        self.R4100 = 0x0007000a;
        self.R3750 = 0x0008000a;
        self.R3900e = 0x0009000a;
        self.R5000 = 0x000a000a;
        self.MIPX = 0x000b000a;
        self.TRW = 0x000c000a;
        self.MMA = 0x000d000a;
        self.R4600 = 0x000e000a;
        self.R4700 = 0x000f000a;
        self.RC32364 = 0x0010000a;
        self.R4400 = 0x0011000a;
        self.MIPS16 = 0x0012000a;
        self.R4500 = 0x0013000a;
        self.CW400x = 0x0014000a;
        self.CW401x = 0x0015000a;
        self.R1900 = 0x0016000a;
        self.R5400 = 0x0017000a;
        self.MP3 = 0x0018000a;
        self.R4320 = 0x0019000a;
        self.R4121 = 0x001a000a;
        self.MIPS32_4Kc = 0x0023000a;
        self.MIPS32_4Kp = 0x0024000a;
        self.MIPS32_4Km = 0x0025000a;
        self.R4900 = 0x0026000a;
        self.SR1GX = 0x0027000a;
        self.MIPS32 = 0x0028000a;
        self.MIPS64 = 0x0029000a;
        self.MIPS64_5Kc = 0x002a000a;
        self.R4900_GE = 0x0031000a;
        self.R3927 = 0x0032000a;
        self.R3904 = 0x0033000a;
        self.R5500 = 0x0034000a;
        self.MIPS64_20Kc = 0x0035000a;
        self.MIPS64_5Kf = 0x0038000a;
        self.MIPS32_4KEc = 0x0039000a;
        self.MIPS32_4KEp = 0x003a000a;
        self.MIPS32_4KEm = 0x003b000a;
        self.MIPS32_4KSc = 0x003c000a;
        self.LSI4021 = 0x003d000a;
        self.BCM1250 = 0x003e000a;
        self.FASTMATH = 0x003f000a;
        self.MIPS32_M4K = 0x0040000a;
        self.MIPS32_4KSd = 0x0041000a;
        self.MIPS64_5KEc = 0x0042000a;
        self.MIPS64_5KEf = 0x0043000a;
        self.MIPS64_25Kf = 0x0044000a;
        self.R1900a = 0x0045000a;
        self.R9721 = 0x0046000a;
        self.E9000 = 0x0047000a;
        self.MIPS32_74Kc = 0x0048000a;
        self.MIPS32_74Kf = 0x0049000a;
        self.MIPS32_24Kc = 0x004a000a;
        self.MIPS32_24Kf = 0x004b000a;
        self.MIPS32_34Kc = 0x004c000a;
        self.MIPS32_34Kf = 0x004d000a;
        self.CNMIPS = 0x004e000a;
        self.R7965 = 0x004f000a;
        self.CNMIPS2 = 0x0052000a;
        self.R3700 = 0x0054000a;
        self.R4131 = 0x0055000a;
        self.MIPS32_24KEc = 0x0056000a;
        self.MIPS32_24KEf = 0x0057000a;
        self.MIPS32_INTERAPTIV = 0x0059000a;
        self.MIPS32_MICROAPTIV = 0x005a000a;
        self.MIPS32R2 = 0x005b000a;
        self.MIPS32R3 = 0x005c000a;
        self.MIPS32R5 = 0x005d000a;
        self.MIPS32_M5100 = 0x005e000a;
        self.MIPS32_M5150 = 0x005f000a;
        self.MIPS32R6 = 0x0060000a;
        self.MIPS64R6 = 0x0061000a;
        self.CNMIPS3 = 0x0062000a;
        self.I6400 = 0x0063000a;
        self.MIPS32_1004Kc = 0x0050000a;
        self.MIPS32_1004Kf = 0x0051000a;
        #
        # Lexra family
        #
        self.LX4180 = 0x001b000a;
        self.LX4180m = 0x001c000a;
        self.LX4189 = 0x001d000a;
        self.LX4189m = 0x001e000a;
        self.LX4280 = 0x001f000a;
        self.LX4280m = 0x0020000a;
        self.LX5180 = 0x0021000a;
        self.LX5280 = 0x0022000a;
        self.LX8000 = 0x002b000a;
        self.LX8000m = 0x002c000a;
        self.LX4180i = 0x002d000a;
        self.LX4180mi = 0x002e000a;
        self.LX4380 = 0x0036000a;
        self.LX4380m = 0x0037000a;
        #
        # MIPS Core IDs
        #
        self.MIPS_CORE_MIPS32 = 1;
        self.MIPS_CORE_MIPS32_4KEc = 2;
        self.MIPS_CORE_MIPS32_4KEm = 3;
        self.MIPS_CORE_MIPS32_4KEp = 4;
        self.MIPS_CORE_MIPS32_M4K = 5;
        self.MIPS_CORE_MIPS32_4KSc = 6;
        self.MIPS_CORE_MIPS32_4KSd = 7;
        self.MIPS_CORE_MIPS32_4Kc = 8;
        self.MIPS_CORE_MIPS32_4Km = 9;
        self.MIPS_CORE_MIPS32_4Kp = 10;
        self.MIPS_CORE_MIPS32_24Kc = 11;
        self.MIPS_CORE_MIPS32_24Kf = 12;
        self.MIPS_CORE_MIPS32_24KEc = 13;
        self.MIPS_CORE_MIPS32_24KEf = 14;
        self.MIPS_CORE_MIPS32_34Kc = 15;
        self.MIPS_CORE_MIPS32_34Kf = 16;
        self.MIPS_CORE_MIPS32_74Kc = 17;
        self.MIPS_CORE_MIPS32_74Kf = 18;
        self.MIPS_CORE_MIPS32_1004Kc = 19;
        self.MIPS_CORE_MIPS32_1004Kf = 20;
        self.MIPS_CORE_MIPS64 = 21;
        self.MIPS_CORE_MIPS64_5Kc = 22;
        self.MIPS_CORE_MIPS64_5Kf = 23;
        self.MIPS_CORE_MIPS64_5KEc = 24;
        self.MIPS_CORE_MIPS64_5KEf = 25;
        self.MIPS_CORE_MIPS64_25Kc = 26;
        self.MIPS_CORE_MIPS64_25Kf = 27;
        self.MIPS_CORE_CNMIPS = 28;
        self.MIPS_CORE_CNMIPS2 = 29;
        self.MIPS_CORE_MIPS32_INTERAPTIV = 31;
        self.MIPS_CORE_MIPS32_MICROAPTIV = 32;
        self.MIPS_CORE_MIPS32R2 = 33;
        self.MIPS_CORE_MIPS32R3 = 34;
        self.MIPS_CORE_MIPS32R5 = 35;
        self.MIPS_CORE_MIPS32_M5100 = 36;
        self.MIPS_CORE_MIPS32_M5150 = 37;
        self.MIPS_CORE_CNMIPS3 = 38;
        self.MIPS_CORE_MIPS32R6 = 39;
        self.MIPS_CORE_MIPS64R6 = 40;
        #
        # x86 family
        #
        self.X86_386 = 0x00000004;
        self.X86_486 = 0x00010004;
        self.X86_PENTIUM = 0x00020004;
        self.X86_PENTIUMPRO = 0x00030004;
        self.X86_64 = 0x00040004;
        self.X86_64_WIN64 = 0x00050004;
        self.X86_PENTIUM2 = 0x00060004;
        self.X86_PENTIUM3 = 0x00070004;
        self.X86_PENTIUM4 = 0x00080004;
        self.X86_80386_GENERIC = 0x00090004;
        self.X86_80486_GENERIC = 0x000a0004;
        self.X86_PENTIUM_GENERIC = 0x000b0004;
        self.X86_PENTIUMPRO_GENERIC = 0x000c0004;
        self.X86_ATOM = 0x000e0004;
        self.X86_CORE2 = 0x000f0004;
        self.X86_COREI = 0x00100004;
        self.X86_NANOCORE = 0x00110004;
        self.X86_NANOCORE_GENERIC = 0x00120004;
        self.X86_SISKIYOU_PEAK = 0x00130004;
        self.X86_SISKIYOU_PEAK_GENERIC = 0x00140004;
        #
        # x86 cores
        #
        self.X86_CORE_80386 = 1;
        self.X86_CORE_80486 = 2;
        self.X86_CORE_PENTIUM = 3;
        self.X86_CORE_PENTIUMPRO = 4;
        self.X86_CORE_NANOCORE = 5;
        self.X86_CORE_SISKIYOU_PEAK = 6;
        #
        # TriCore family
        #
        self.TRI_A = 0x00000019;
        self.TRI_TC1V12 = 0x00010019;
        self.TRI_TC10GP = 0x00010019;
        self.TRI_TC1775 = 0x00020019;
        self.TRI_TC1V13 = 0x00030019;
        self.TRI_TC1766 = 0x00040019;
        self.TRI_TC1796 = 0x00050019;
        self.TRI_TC1V131 = 0x00060019;
        self.TRI_TC1V16 = 0x00070019;
        self.TRI_TC1793 = 0x00080019;
        self.TRI_TC1797 = 0x00090019;
        self.TRI_TC1782 = 0x000a0019;
        self.TRI_TC1V16P = 0x000b0019;
        self.TRI_TC27X = 0x000c0019;
        self.TRI_TC29X = 0x000d0019;
        self.TRI_TC1V162 = 0x000e0019;
        self.TRI_TC39X = 0x000f0019;
        self.TRI_TC1V18 = 0x00100019;
        #
        # 68k/ColdFire family
        #
        self.M68_68000 = 0x00000003;
        self.M68_68302 = 0x00010003;
        self.M68_68010 = 0x00020003;
        self.M68_CPU32 = 0x00030003;
        self.M68_68020 = 0x00040003;
        self.M68_68030 = 0x00050003;
        self.M68_68040 = 0x00060003;
        self.M68_68060 = 0x00070003;
        self.M68_CF5202 = 0x00080003;
        self.M68_CF5204 = 0x00090003;
        self.M68_CF5300 = 0x000a0003;
        self.M68_CF5407 = 0x000b0003;
        self.M68_CF5249 = 0x000c0003;
        self.M68_CFV2 = 0x000d0003;
        self.M68_CF5206e = 0x000e0003;
        self.M68_CF5272 = 0x000f0003;
        self.M68_CFV3 = 0x00100003;
        self.M68_CFV4 = 0x00110003;
        self.M68_CFV4e = 0x00120003;
        self.M68_CF5282 = 0x00130003;
        self.M68_CFV5 = 0x00140003;
        self.M68_CF5232 = 0x00150003;
        self.M68_CF5233 = 0x00160003;
        self.M68_CF5234 = 0x00170003;
        self.M68_CF5235 = 0x00180003;
        self.M68_CF5270 = 0x00190003;
        self.M68_CF5271 = 0x001a0003;
        self.M68_CF5274L = 0x001b0003;
        self.M68_CF5274 = 0x001c0003;
        self.M68_CF5275L = 0x001d0003;
        self.M68_CF5275 = 0x001e0003;
        self.M68_CF5470 = 0x001f0003;
        self.M68_CF5471 = 0x00200003;
        self.M68_CF5472 = 0x00210003;
        self.M68_CF5473 = 0x00220003;
        self.M68_CF5474 = 0x00230003;
        self.M68_CF5475 = 0x00240003;
        self.M68_CF5480 = 0x00250003;
        self.M68_CF5481 = 0x00260003;
        self.M68_CF5482 = 0x00270003;
        self.M68_CF5483 = 0x00280003;
        self.M68_CF5484 = 0x00290003;
        self.M68_CF5485 = 0x002a0003;
        self.M68_CF5211 = 0x002b0003;
        self.M68_CF5212 = 0x002c0003;
        self.M68_CF5213 = 0x002d0003;
        self.M68_CF5207 = 0x002e0003;
        self.M68_CF5208 = 0x002f0003;
        self.M68_CF5327 = 0x00300003;
        self.M68_CF5328 = 0x00310003;
        self.M68_CF5329 = 0x00320003;
        self.M68_CF5372L = 0x00330003;
        self.M68_CF5372 = 0x00340003;
        self.M68_CF5373L = 0x00350003;
        self.M68_CF5373 = 0x00360003;
        self.M68_CF5221 = 0x00370003;
        self.M68_CF5222 = 0x00380003;
        self.M68_CF5223 = 0x00390003;
        self.M68_CF5251 = 0x003a0003;
        self.M68_CF5253 = 0x003b0003;
        self.M68_CF5445x = 0x003c0003;
        self.M68_V2_GENERIC = 0x003d0003;
        self.M68_V3_GENERIC = 0x003e0003;
        self.M68_V3_PLUS_GENERIC = 0x003f0003;
        self.M68_V3_EMAC_GENERIC = 0x00400003;
        self.M68_V3_EMAC_PLUS_GENERIC = 0x00410003;
        self.M68_V4_GENERIC = 0x00420003;
        self.M68_V4_EMAC_MMU_GENERIC = 0x00430003;
        self.M68_V4_EMAC_FPU_GENERIC = 0x00440003;
        self.M68_V4_EMAC_FPU_MMU_GENERIC = 0x00450003;
        self.M68_V5_GENERIC = 0x00460003;
        self.M68_68LC040 = 0x00470003;
        self.M68_68EC040 = 0x00480003;
        self.M68_68LC060 = 0x00490003;
        self.M68_68EC060 = 0x004a0003;
        self.M68_68340 = 0x004b0003;
        self.M68_68360 = 0x004c0003;
        self.M68_CF5102 = 0x004d0003;
        self.M68_CF5203 = 0x004e0003;
        self.M68_CF5206 = 0x004f0003;
        self.M68_CF521x = 0x00500003;
        self.M68_CF521xx = 0x00510003;
        self.M68_CF5222x = 0x00520003;
        self.M68_CF5223x = 0x00530003;
        self.M68_CF5227x = 0x00540003;
        self.M68_CF523x = 0x00550003;
        self.M68_CF527x = 0x00560003;
        self.M68_CF532x = 0x00570003;
        self.M68_CF537x = 0x00580003;
        self.M68_CF5407E = 0x00590003;
        self.M68_CF547x = 0x005a0003;
        self.M68_CF548x = 0x005b0003;
        self.M68_CF5221x = 0x005c0003;
        self.M68_CF5225x = 0x005d0003;
        self.M68_CF5301x = 0x005e0003;
        self.M68_CF5441x = 0x005f0003;
        # 68k/ColdFire FPU coprocessors
        self.M68_NOFPU = 0;
        self.M68_881 = 1;
        self.M68_882 = 2;
        self.M68_LC040 = 3;
        self.M68_EC040 = 4;
        self.M68_68360FPU = 5;
        self.M68_LC060 = 6;
        self.M68_EC060 = 7;
        self.M68_CFFPU = 8;
        #
        # ColdFire cores
        #
        self.M68_CORE_V2 = 1;
        self.M68_CORE_V3 = 2;
        self.M68_CORE_V3_PLUS = 3;
        self.M68_CORE_V3_EMAC = 4;
        self.M68_CORE_V3_EMAC_PLUS = 5;
        self.M68_CORE_V4 = 6;
        self.M68_CORE_V4_EMAC_MMU = 7;
        self.M68_CORE_V4_EMAC_FPU = 8;
        self.M68_CORE_V4_EMAC_FPU_MMU = 9;
        self.M68_CORE_V5 = 10;
        #
        # StarCore family
        #
        self.MSC_8101 = 0x0000001e;
        self.MSC_8102 = 0x0001001e;
        self.SC1400 = 0x0002001e;
        self.SC1200 = 0x0003001e;
        self.SC2400 = 0x0004001e;
        self.SC2200 = 0x0005001e;
        self.SC3400 = 0x0006001e;
        self.SC3200 = 0x0007001e;
        self.MSC_8103 = 0x0008001e;
        self.MSC_8122 = 0x0009001e;
        self.MSC_711X = 0x000a001e;
        #
        # Blackfin family
        #
        self.BF_ADI_532 = 0x00000024;
        self.BF_GHS_533 = 0x00010024;
        self.BF_ADI_535 = 0x00020024;
        self.BF_GHS_531 = 0x00030024;
        self.BF_GHS_532 = 0x00040024;
        self.BF_GHS_535 = 0x00050024;
        self.BF_GHS_561 = 0x00060024;
        self.BF_GHS_534 = 0x00070024;
        self.BF_GHS_536 = 0x00080024;
        self.BF_GHS_537 = 0x00090024;
        self.BF_GHS_539 = 0x000a0024;
        self.BF_GHS_566 = 0x000b0024;
        self.BF_GHS_538 = 0x000c0024;
        self.BF_GHS_542 = 0x000d0024;
        self.BF_GHS_544 = 0x000e0024;
        self.BF_GHS_548 = 0x000f0024;
        self.BF_GHS_549 = 0x00100024;
        self.BF_GHS_522 = 0x00110024;
        self.BF_GHS_525 = 0x00120024;
        self.BF_GHS_527 = 0x00130024;
        self.BF_GHS_512 = 0x00140024;
        self.BF_GHS_514 = 0x00150024;
        self.BF_GHS_516 = 0x00160024;
        self.BF_GHS_518 = 0x00170024;
        #
        # SH family
        #
        self.SH_1 = 0x00000011;
        self.SH_2 = 0x00010011;
        self.SH_2A = 0x00070011;
        self.SH_2DSP = 0x00030011;
        self.SH_3 = 0x00020011;
        self.SH_3DSP = 0x00060011;
        self.SH_3E = 0x00040011;
        self.SH_4 = 0x00050011;
        self.SH_4A = 0x00080011;
        #
        # M32R family
        #
        self.M32R_COP_FPU = 1;
        #
        # ARC family
        #
        self.ARC_A4 = 0x00000027;
        self.ARC_A5 = 0x00010027;
        self.ARC_A600 = 0x00020027;
        self.ARC_A700 = 0x00030027;
        #
        # C6000 family
        #
        self.C6200 = 0x00000029;
        self.C6400 = 0x00010029;
        self.C6400PLUS = 0x00020029;
        self.C6700 = 0x00030029;
        #
        # FR family
        #
        self.FR20 = 0x00000015;
        #
        # PIC30 family
        #
        self.PIC24 = 0x00000030;
        self.DSPIC30 = 0x00010030;
        #
        # FireFly family
        #
        self.FireFly32 = 0x0000002e;
        self.FireFly64 = 0x0001002e;
        self.FireFly16 = 0x0002002e;
        self.FireFly_LUZ32 = 0x0003002e;
        self.FireFly64_A32 = 0x0004002e;
        #
        # Nano family
        #
        self.NANO32 = 0x00000031;
        self.NANO16 = 0x00010031;
        #
        # ARM64 family
        #
        self.ARM64_V8 = 0x00010032;
        self.ARM64_CORTEXA53 = 0x00400032;
        self.ARM64_CORTEXA57 = 0x00410032;
        self.ARM64_CORTEXA55 = 0x00420032;
        self.ARM64_CORTEXA34 = 0x007d0032;
        self.ARM64_CORTEXA35 = 0x00430032;
        self.ARM64_CORTEXA65 = 0x007e0032;
        self.ARM64_CORTEXA65AE = 0x007f0032;
        self.ARM64_CORTEXA72 = 0x00440032;
        self.ARM64_CORTEXA73 = 0x00450032;
        self.ARM64_CORTEXA75 = 0x00460032;
        self.ARM64_KRYO = 0x00470032;
        self.ARM64_CORTEXA76 = 0x00480032;
        self.ARM64_CORTEXA76AE = 0x00490032;
        self.ARM64_KRYO280G = 0x004a0032;
        self.ARM64_KRYO250G = 0x004b0032;
        self.ARM64_KRYO250S = 0x004c0032;
        self.ARM64_KRYO260G = 0x004d0032;
        self.ARM64_KRYO260S = 0x004e0032;
        self.ARM64_KRYO360G = 0x004f0032;
        self.ARM64_KRYO360S = 0x00500032;
        self.ARM64_KRYO385G = 0x00510032;
        self.ARM64_KRYO385S = 0x00520032;
        self.ARM64_KRYO460G = 0x00530032;
        self.ARM64_KRYO460S = 0x00540032;
        self.ARM64_KRYO280S = 0x00550032;
        self.ARM64_KRYO465G = 0x00560032;
        self.ARM64_KRYO465S = 0x00570032;
        self.ARM64_KRYO468G = 0x00580032;
        self.ARM64_KRYO468S = 0x00590032;
        self.ARM64_KRYO470G = 0x005a0032;
        self.ARM64_KRYO470S = 0x005b0032;
        self.ARM64_KRYO475G = 0x005c0032;
        self.ARM64_KRYO475S = 0x005d0032;
        self.ARM64_KRYO485G = 0x005e0032;
        self.ARM64_KRYO485S = 0x005f0032;
        self.ARM64_KRYO490G = 0x00600032;
        self.ARM64_KRYO490S = 0x00610032;
        self.ARM64_KRYO495G = 0x00620032;
        self.ARM64_KRYO495S = 0x00630032;
        self.ARM64_KRYO585G = 0x00640032;
        self.ARM64_KRYO585S = 0x00650032;
        self.ARM64_CORTEXA77 = 0x00660032;
        self.ARM64_CORTEXA78 = 0x00670032;
        self.ARM64_CORTEXX1 = 0x00680032;
        self.ARM64_CORTEXX1C = 0x00810032;
        self.ARM64_CORTEXR82 = 0x00690032;
        self.ARM64_CORTEXA78AE = 0x006a0032;
        self.ARM64_CORTEXA78C = 0x006b0032;
        self.ARM64_CORTEXA510 = 0x006c0032;
        self.ARM64_CORTEXA710 = 0x006d0032;
        self.ARM64_CORTEXA715 = 0x00800032;
        self.ARM64_CORTEXX2 = 0x006e0032;
        self.ARM64_CORTEXX3 = 0x00820032;
        self.ARM64_NEOVERSEE1 = 0x006f0032;
        self.ARM64_NEOVERSEN1 = 0x00700032;
        self.ARM64_NEOVERSEN2 = 0x00710032;
        self.ARM64_NEOVERSEV1 = 0x00720032;
        self.ARM64_NEOVERSEV2 = 0x00830032;
        self.ARM64_KRYO560G = 0x00730032;
        self.ARM64_KRYO560S = 0x00740032;
        self.ARM64_KRYO570G = 0x00750032;
        self.ARM64_KRYO570S = 0x00760032;
        self.ARM64_KRYO680P = 0x00770032;
        self.ARM64_KRYO680G = 0x00780032;
        self.ARM64_KRYO680S = 0x00790032;
        self.ARM64_KRYO670P = 0x007a0032;
        self.ARM64_KRYO670G = 0x007b0032;
        self.ARM64_KRYO670S = 0x007c0032;
        # Last ARM64 CPU minor ID used is 0x83
        #
        # ARM64 core ids
        #
        self.ARM64_CORE_ARMV8 = 0x00000001;
        self.ARM64_CORE_CORTEXA53 = 0x00000040;
        self.ARM64_CORE_CORTEXA57 = 0x00000041;
        self.ARM64_CORE_CORTEXA55 = 0x00000042;
        self.ARM64_CORE_CORTEXA35 = 0x00000043;
        self.ARM64_CORE_CORTEXA72 = 0x00000044;
        self.ARM64_CORE_CORTEXA73 = 0x00000045;
        self.ARM64_CORE_CORTEXA75 = 0x00000046;
        self.ARM64_CORE_KRYO = 0x00000047;
        self.ARM64_CORE_CORTEXA76 = 0x00000048;
        self.ARM64_CORE_CORTEXA76AE = 0x00000049;
        self.ARM64_CORE_KRYO280G = 0x0000004a;
        self.ARM64_CORE_KRYO250G = 0x0000004b;
        self.ARM64_CORE_KRYO250S = 0x0000004c;
        self.ARM64_CORE_KRYO260G = 0x0000004d;
        self.ARM64_CORE_KRYO260S = 0x0000004e;
        self.ARM64_CORE_KRYO360G = 0x0000004f;
        self.ARM64_CORE_KRYO360S = 0x00000050;
        self.ARM64_CORE_KRYO385G = 0x00000051;
        self.ARM64_CORE_KRYO385S = 0x00000052;
        self.ARM64_CORE_KRYO460G = 0x00000053;
        self.ARM64_CORE_KRYO460S = 0x00000054;
        self.ARM64_CORE_KRYO280S = 0x00000055;
        self.ARM64_CORE_KRYO465G = 0x00000056;
        self.ARM64_CORE_KRYO465S = 0x00000057;
        self.ARM64_CORE_KRYO468G = 0x00000058;
        self.ARM64_CORE_KRYO468S = 0x00000059;
        self.ARM64_CORE_KRYO470G = 0x0000005a;
        self.ARM64_CORE_KRYO470S = 0x0000005b;
        self.ARM64_CORE_KRYO475G = 0x0000005c;
        self.ARM64_CORE_KRYO475S = 0x0000005d;
        self.ARM64_CORE_KRYO485G = 0x0000005e;
        self.ARM64_CORE_KRYO485S = 0x0000005f;
        self.ARM64_CORE_KRYO490G = 0x00000060;
        self.ARM64_CORE_KRYO490S = 0x00000061;
        self.ARM64_CORE_KRYO495G = 0x00000062;
        self.ARM64_CORE_KRYO495S = 0x00000063;
        self.ARM64_CORE_KRYO585G = 0x00000064;
        self.ARM64_CORE_KRYO585S = 0x00000065;
        self.ARM64_CORE_CORTEXA77 = 0x00000066;
        self.ARM64_CORE_CORTEXA78 = 0x00000067;
        self.ARM64_CORE_CORTEXX1 = 0x00000068;
        self.ARM64_CORE_CORTEXR82 = 0x00000069;
        self.ARM64_CORE_CORTEXA78AE = 0x0000006a;
        self.ARM64_CORE_CORTEXA78C = 0x0000006b;
        self.ARM64_CORE_CORTEXA510 = 0x0000006c;
        self.ARM64_CORE_CORTEXA710 = 0x0000006d;
        self.ARM64_CORE_CORTEXX2 = 0x0000006e;
        self.ARM64_CORE_NEOVERSEE1 = 0x0000006f;
        self.ARM64_CORE_NEOVERSEN1 = 0x00000070;
        self.ARM64_CORE_NEOVERSEN2 = 0x00000071;
        self.ARM64_CORE_NEOVERSEV1 = 0x00000072;
        self.ARM64_CORE_KRYO560G = 0x00000073;
        self.ARM64_CORE_KRYO560S = 0x00000074;
        self.ARM64_CORE_KRYO570G = 0x00000075;
        self.ARM64_CORE_KRYO570S = 0x00000076;
        self.ARM64_CORE_KRYO680P = 0x00000077;
        self.ARM64_CORE_KRYO680G = 0x00000078;
        self.ARM64_CORE_KRYO680S = 0x00000079;
        self.ARM64_CORE_KRYO670P = 0x0000007a;
        self.ARM64_CORE_KRYO670G = 0x0000007b;
        self.ARM64_CORE_KRYO670S = 0x0000007c;
        self.ARM64_CORE_CORTEXA34 = 0x0000007d;
        self.ARM64_CORE_CORTEXA65 = 0x0000007e;
        self.ARM64_CORE_CORTEXA65AE = 0x0000007f;
        self.ARM64_CORE_CORTEXA715 = 0x00000080;
        self.ARM64_CORE_CORTEXX1C = 0x00000081;
        self.ARM64_CORE_CORTEXX3 = 0x00000082;
        self.ARM64_CORE_NEOVERSEV2 = 0x00000083;
        #
        # RISC-V family
        #
        self.RISCV32 = 0x00000034;
        self.RISCV64 = 0x00010034;
        self.RISCV32FX = 0x00020034;
        self.RISCV64FX = 0x00030034;
        # RISC-V Coprocessors
        self.FP_RISCV_FPUMASK = 3;
        self.FP_RISCV_FPU32 = 1;
        self.FP_RISCV_FPU64 = 2;
        self.FP_RISCV_FPU128 = 3;
        #
        # RISC-V cores
        #
        self.RISCV_CORE_RV32 = 1;
        self.RISCV_CORE_RV64 = 2;


# OPERATING SYSTEMS
class GHS_OsTypes:
    """ Describe MULTI-supported OS information."""
    #
    # Initialize object.
    #
    # GHS: Validated
    #
    def __init__(self):
        #
        # OS types
        #
        self.OS_NULL = 0;
        self.OS_VXWORKS = 1;
        # OS_CHORUS is deprecated.
        self.OS_CHORUS = 2;
        self.OS_NUCLEUS = 3;
        self.OS_OSE = 4;
        self.OS_INTEGRITY = 5;
        self.OS_THREADX = 6;
        self.OS_WINDOWS = 7;
        self.OS_UNIX = 8;
        self.OS_MERCURY = 9;
        # A very general one
        self.OS_MULTICORE = 10;
        self.OS_ALPHA = 11;
        # OS_DICOS is deprecated.
        self.OS_DICOS = 12;
        self.OS_9K = 13;
        self.OS_UVELOSITY = 14;
        # An OS we don't distinguish
        self.OS_GENERIC = 255;
        #
        # OS minor types
        #
        self.OS_MINOR_NUL = 0;
        self.OS_MINOR_OSE_CELLO = 1;
        self.OS_MINOR_UNIX_LINUX = 1;
        self.OS_MINOR_UNIX_LYNXOS = 2;


# Memory Spaces
class GHS_MemorySpaces:
    """ Describe memory space information."""
    #
    # Initialize object.
    #
    # GHS: Validated
    #
    def __init__(self):
        self.MSPACE_DEFAULT = 0;
        self.MSPACE_TEXT_DEFAULT = 32;
        self.MSPACE_DATA_DEFAULT = 64;
        self.MSPACE_TEXT_PHYSICAL = 63;
        self.MSPACE_DATA_PHYSICAL = 95;
        self.MSPACE_DATA_RAWMEMORY = 94;
        # File Address Modes
        self.ADDR_MODE_16BIT = 0;
        self.ADDR_MODE_16BIT_16SEG = 1;
        self.ADDR_MODE_32BIT = 2;
        self.ADDR_MODE_64BIT = 3;


# Define some aliases for the classes.

# Define an object for the classes.
targetIds = GHS_TargetIds();
osTypes = GHS_OsTypes();
msIds = GHS_MemorySpaces();
