get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2237946/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2237946,
    "url": "http://patchwork.ozlabs.org/api/patches/2237946/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260513163356.3033159-3-shaju.abraham@nutanix.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260513163356.3033159-3-shaju.abraham@nutanix.com>",
    "list_archive_url": null,
    "date": "2026-05-13T16:33:45",
    "name": "[RFC,v1,02/13] target/arm: named_cpu_model: Add ID Register Fields",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "14ab2d692bb0d01d1e4be99cf479a59e7aa395c3",
    "submitter": {
        "id": 77003,
        "url": "http://patchwork.ozlabs.org/api/people/77003/?format=api",
        "name": "Shaju Abraham",
        "email": "shaju.abraham@nutanix.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260513163356.3033159-3-shaju.abraham@nutanix.com/mbox/",
    "series": [
        {
            "id": 504187,
            "url": "http://patchwork.ozlabs.org/api/series/504187/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=504187",
            "date": "2026-05-13T16:33:48",
            "name": "named CPU models for ARM64 on KVM",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/504187/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2237946/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2237946/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=proofpoint20171006 header.b=kwgT3WjU;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256\n header.s=selector1 header.b=oIJdQL1M;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gFzcQ6cYMz1y5L\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 14 May 2026 02:36:22 +1000 (AEST)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wNCYt-0004zg-Vm; Wed, 13 May 2026 12:35:56 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <shaju.abraham@nutanix.com>)\n id 1wNCXo-0003Ls-SO; Wed, 13 May 2026 12:34:51 -0400",
            "from mx0b-002c1b01.pphosted.com ([148.163.155.12])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <shaju.abraham@nutanix.com>)\n id 1wNCXj-0000kQ-D8; Wed, 13 May 2026 12:34:48 -0400",
            "from pps.filterd (m0127844.ppops.net [127.0.0.1])\n by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 64DGLWup4150443; Wed, 13 May 2026 09:34:12 -0700",
            "from ch1pr05cu001.outbound.protection.outlook.com\n (mail-northcentralusazon11020111.outbound.protection.outlook.com\n [52.101.193.111])\n by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4e3nva674u-1\n (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);\n Wed, 13 May 2026 09:34:12 -0700 (PDT)",
            "from PH7PR02MB10160.namprd02.prod.outlook.com\n (2603:10b6:510:2e7::19) by CH3PR02MB9564.namprd02.prod.outlook.com\n (2603:10b6:610:120::21) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Wed, 13 May\n 2026 16:34:10 +0000",
            "from PH7PR02MB10160.namprd02.prod.outlook.com\n ([fe80::4ed7:5c74:48e0:ff23]) by PH7PR02MB10160.namprd02.prod.outlook.com\n ([fe80::4ed7:5c74:48e0:ff23%7]) with mapi id 15.20.9891.021; Wed, 13 May 2026\n 16:34:09 +0000"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=\n proofpoint20171006; bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WI\n v4=; b=kwgT3WjUhbafrV0hNfsiPE1Sog5xkUgUjpmDIjQGYxDF+Gi4PTyp/R+6z\n i3vm0sCetD9aj9BiShoBpSEm5xX53o+iNd9hCjYGuZJqTZNn5UBPSs6I70O6FhQ1\n tyt8ML+6raGzdHEOL4b83XUtnKzVv+c2lNF0tVSY416z54E9HdXAMCv09JtXNuM8\n GXoFM8UqvnoL4LSzmP75W2mzvYxz97dlBVqREZZQh4ZpNP2rA0JBPeOgokVWp5EE\n Zc/K541EQLSfZcSj3raEXtF0GA3ps/VO8OIQ8WO4o1minD52Sk0ARJMjOOHGtvSA\n WTyTMu2HREFXSwXHIkUtBYrmo7Bhg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=;\n b=oIJdQL1Mzep+eHRwVrrhMvtknY7c+9eY7llgPftHM/lJai3BPo98vqaIAdR0iKv1BF3tNj9ir8j72s5iG/vPo0koioVKATQaqh3lXs1YBORBY/3y6ExItxtqfBPRNIdIw9k0IhfYO72EWK/QpIuIi/dQRg4T5Pvqjyf3r5F8Bqx2tobX8Pii6NE+XPwtr1ZdVQnyU1zDt9Tsj2l2ctG4bKLvLbE0JtStLfEYsJnRHOdHH2rKIC0PNLEIiHWyGikHeBw13rpiIZ+hq56bJGVCwNA0OqmE4u3kJ5HlQ2rVznZihrAJ7jHCaha0yXLjiNFcm/tj1+THxw+2tjwoGq0zMw=="
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=avnlO3R515ET2wpnaeuUlNX71XQPk7keYseMXZhisFVxKwccQ8IPDpZ11UQ/MuqIjaK1vK02kl6euAXVF28MmMblgHcNHfOedNNAb68rJA4Sz/oLfqj52C0ae53rAZNODaj1sLCqRjKaRqrhKu2d8gq3FeDMzCpa/Vkli987+ZVzSRnoYKA+naqCRcnle/Lw3XOHGnNPTDopSK55Dn/vO485Q6KgTGL6FrH+OzhWgo116C5bzy7DwRS4J1797Cu8demxHZPIKPn2bmo41p3CLY+h5+uS5oEO4sjxEB9RYs/20/qattRU1DoB9/0Sc65d31uuIHFRFhSbvHc2bc80JQ==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=GXJ4TkC4GU3PilMmllwe61pRKZJq9E1JgZ0DWo8WIv4=;\n b=BIfDSoJsI0L7petiKUECPzElUv4GVYpke+90v92Tx7dqWp0XrL2VUJ72VZ031xAngJveRx5UMWix2cXZhQ+GgZzT+Z/lpOgrzikM4YVV4O/u1xQ2TXcbNs1gGWPP/CwOj/uiGeTfZGbWhwIzczJS1vpVpfPxbnK2f2v1/ZYYZoasnReKlM5hHLTmjP40Cb8WNSFSctV6sxoS9a4ctRdMi5G9BuEUQk+WLSqR7EVVmVUKYsajE6yYW8OoVy0xygvB2AxCXi8PNiWk1Jah/wyIIpwaPe7XVyGEXNlljhiWSxc/hY6i1vpDJOUjuJwgfs9Nt+lC9rLrcuZB7B5TyYOkfg==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com;\n dkim=pass header.d=nutanix.com; arc=none",
        "From": "Shaju Abraham <shaju.abraham@nutanix.com>",
        "To": "eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org,\n kvmarm@lists.linux.dev, peter.maydell@linaro.org,\n richard.henderson@linaro.org, cohuck@redhat.com, sebott@redhat.com,\n skolothumtho@nvidia.com, philmd@linaro.org",
        "Cc": "maz@kernel.org, oliver.upton@linux.dev, pbonzini@redhat.com,\n prerna.saxena@nutanix.com, jon@nutanix.com, jond@nutanix.com,\n Shaju Abraham <shaju.abraham@nutanix.com>,\n Khushit Shah <khushit.shah@nutanix.com>",
        "Subject": "[RFC PATCH v1 02/13] target/arm: named_cpu_model: Add ID Register\n Fields",
        "Date": "Wed, 13 May 2026 16:33:45 +0000",
        "Message-ID": "<20260513163356.3033159-3-shaju.abraham@nutanix.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260513163356.3033159-1-shaju.abraham@nutanix.com>",
        "References": "<20260513163356.3033159-1-shaju.abraham@nutanix.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "CY5PR10CA0003.namprd10.prod.outlook.com\n (2603:10b6:930:1c::30) To PH7PR02MB10160.namprd02.prod.outlook.com\n (2603:10b6:510:2e7::19)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PH7PR02MB10160:EE_|CH3PR02MB9564:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "d9b28a3b-e6fe-48e9-849d-08deb10d7572",
        "x-proofpoint-crosstenant": "true",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|7416014|376014|366016|1800799024|18002099003|22082099003|921020|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n h4Kcb6oG4ONJ2/V6FE11fxgoaxQ+dYoJefYCaOgfpbx58bs1TgG0a9ID91orViDVLEswIlSkGvh6WoJ6SWChkGAwkOjt3CkGsrc7yNvqjKa9bj7tDqKUeXdWZoGVxq9DXd+80anx67kXWdAdCeq9WmMNn/l2KudUC9FJ8jp9R7X1g/YJ2t9tgnpbyP62Thly9udZ1K7FUbKUqu9HEZINS6Y4NYH4Qn/FypyDfO/t6Yvr2pr9RcfY7TXaV8kYWqzLaXbuf11bGPyr5bHotKRUHIJur1tBbPppRJVsaF13jqhzxNzpqyXAGXeA78pbPA9bZ+IOi0BrRAXs2K5oadPn8OFRYf08jVusAWJViXWyN1lzijxoG/cnaVr3mNqWpXgEBDs0aDYxGJhpzsnbu1rUI2RZs/9Vdfk3YI5LM7JeEqndmgR8ebhlPTcWnQMj11kNwiXOC0lGjKUGLY/bT1X6Ad61F7JB8b4t7kx8SJ/9FV5v/5/tlDmaJB2AxNLLiCwrRdWBRYQlFJv7rMaMMdTCrIgC/88/Ynfvd9R6s7snDWWQqAiTZ79npB7vJ1uNX0AP0A+7/r/R0cmCQKeLf1XkUb+zNy8HsdOFB/jRG8cY+YvVJFtkwWgE0m1Mu0gWfcyUE6fh1wpAQLCTlsl+f8PUV1J8/b++UYpb2vvuVnaZzRGcGFrWa0UHqFP7/+IqwqKK8xDlpOy7tcJrHwHJzAavdoQrSJ+/cheUJOVGEsjUPDE=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PH7PR02MB10160.namprd02.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(7416014)(376014)(366016)(1800799024)(18002099003)(22082099003)(921020)(56012099003);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n pVdHhVTCMdlVWf4sphuZr6xs3rfTPfLbX8EXua6CyV9l0VTPZShBLAw6owoWSL3B34PaHL6lKUFCMt6vUPj0AZydcnnMoHSE0sSPotn450F89nqQp+uTDoLIGSOIqBQfx2hC/atnGLILi8dWmdibrnMKpFNI0Zs4Uwtxc8pHMKPz9XFzX4TTB+zTWF7bBm04QWP4MDa8Z5qBlaDaGv3qYnP4IDDLvgFXa/RsrSAgRn7EJebHE3jQpDCJllMdaJUnuiiok67nxLjLrWP6DZDNbU1JdsdvEkdxX+TstPfd5qEdPFF9fpNR+cCeCwDRm3CEaHlw+fLI30216Xm20Z5K2hqoWM5o3ok5ZTBXjroh4r+pU0C9EN28XC27HJVJfOo54Uqh4rAwzdMQ+rjXf5V+XgshY0j4PvXNUrzoYZWhEoRu5apRIFAsbdeo2PAnwyMCVZ6VeI8cvjHHokAJj6iBz7nuKxiA5Jbe/FbaJV4W5qlUlo2iB3NeTK6m9MNn2SqtgOtOJUYHZRf7ylPFGvrBT0LDlTsFaQ3SaU++IEE7/ZW6197/JuzwguWHPcdOD6NWUtEvxbkxS7BvLcIa6zzYm9kJ/fj0hmFbJeYh6LO4R5KTQZTyU+9xH6c7hm1HnFHTAeVBg063b9hC9ZRwkPGQwGDOqK/w1Xxz5lyDnevdjHEW9QOZ7IhoQ+I1nipKAFimGAAdHYmai5+HigPLI0csMr6p4yIbfmIsooFZXMKZPmH0c9/zYOxjuAMgAgRjl/+VelZTuXXfQdKUj8tKgCeHFj7T6ZzVY7Yqr2CPOv6Aa61AIArIYftogdIG5C2DKM9LDoOTf3oLXZqeioYlXFy2HCYpRigjy93lYlXiqKsQ6zBAZOfjzHHAKidxtTafXiPQoqjMf+OzgF861EEwXwdAIEJkZFftUlPd1/PA1N3E6nKnGbPH89pH+qSAiNK3yiFv78l6MyJ4zqbHXLJ1mJdMumavRziXOwIdwuogc77Nqu14xsUeMtXQMSxfjG+8E8dWI1zbKkQCAGqhvGWEo1jELsEheQ0TMEawLx/FASfIWsol76tH65lY7Ct1AWKPmtH3gK5LDWaPHmFW2U89fxS5go6yFw3Ccg44FRJCaBF5dFWYdvkuSR34L3IuzhV22XW19Hm7p641sLBdoinpezxkhZEVw450E1yU0ZkXgA0p6ptovB44odJloIdmi1NxRVfamE4vmHEvY3KUvqEZFgma7PNR0EAWgCrRu/zvef9WSDOIxZRbj8taIKNCfloO4uc+5zej3rCOcrbmyZbT4OFJy0H1+w00VS/s/oG6tM/u728/6RHrwHsbRG+bzTaiwOwYzIKZFIm7wLLzV8KycJpCJYfyu2DRJRX6YbnEQTKg0Gk6ZBekhgtrM3iZRe5vQRYLZnl1u5CsMJHjNZAS/fXCPldpowRGE+IEzbbeYlHPumN3eYfWq9HOA24VaXspPjqwEgdq7vDvBOYlFvTcWA6bPAj1LRAxW2A4r3LnKHDxlpQuUzKbenvU5fEBfP4K36UUinY5dz7tqagDkpxqm0WKqVofCH5tTVvDqpjqUoWjLLS7FJHJheNIKg5b3UQtjqCy6uy3WUUxlRzmyOezt1yxKGDpJyw912GRkcf9j07m0cL770xznOauNz5JZUvqGMVq0XLUgDr4J+Q5oFUZVwmF4RcyBfNnIeQfXxSPiU/MrRn8ZYUX7ql7F0idHHi1r19MlYSIR0Cu9mTspPAHUb6qjWeMss+bwG945KeoZMy89JI=",
        "X-Exchange-RoutingPolicyChecked": "\n F/Y+zbUNHnXRSG+2z8s1sL5q9IEqQiyDck4flEL1MfZ7NXsF5LOAPEwNyzBjg6yhrpknbZD9KbONHzE+CngB53+8L2E8N8y7MW0z72EL4bKniWyTTWwImgMz4IW+TKgdLbubsvMLYZ1SR/i2sfpur/qyk+jR6yr4ibAyVU0zR6v1pwF98UX/GL6j3c+akYpaYqKaHzwdu/+3IdUr28fq8sAH3ly89QEZKBpVqqTHADDURjVaNMuqbkBcSlEGf1DLlqBeyVBURbz9GgWpJTDQ/sSmR5nvnxowVkPhKTf2riB5MELMRgcVNZauKfvVV+RzHCyHSPLSXhlXRyIlP7/AqA==",
        "X-OriginatorOrg": "nutanix.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d9b28a3b-e6fe-48e9-849d-08deb10d7572",
        "X-MS-Exchange-CrossTenant-AuthSource": "PH7PR02MB10160.namprd02.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "13 May 2026 16:34:09.9038 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "bb047546-786f-4de1-bd75-24e5b6f79043",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n AJY0LEo5dDyeE338lwPDCVKr7aMSCxjXlO/Om8U2AYA7a/0lUFQ9Eyq3X/YOptQggW+psW7JpuZANwKteqKtI2F3HajyNeCeMZ0r9rTIxLo=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH3PR02MB9564",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNTEzMDE2OCBTYWx0ZWRfXy+gnJTyKHBPZ\n QzH03yj6o5M9qks9R/6s0QjuwImrLKAsGsuq9AwgVwJcn6gDn7mvfj74D0aiUNqRlhZ+UzUfhoi\n Sz7QUWOe81fl1ULf4Vcw2XECss/v3X33TYRGUFWpYlWtQMeG7yieft5mU/W6IWU3h+klkf6OjeY\n L2RZ8gONUKZd99RgcZwPnUzTgCLs1aQPN+bH/7/5nfX38BvFUIhldgqMQyieK6Na4AD0OzYNQuf\n EXz3BN9d8MS92X9FOozrRGyGTW+nJwZJu+rzDcQ18NUWhzAFm6rfJvHtlRWD6/HdYSSLmWumR6L\n UqCpNjvply+JV5EOTdkG2zK5I2qoGdTwVGeq0HCS3YME0y3ysUagVmpxCaCAUjL9hcnW8a6CTCG\n GomYT/Ka+DuO6rLpf2T+Peu62Pw5WBpZpTk7LtDnYCKEVzCmYi3rHlZ9seQDAfUqtPRdOBqzh/4\n L84bw/S6VMtoTMpt86Q==",
        "X-Authority-Analysis": "v=2.4 cv=evLvCIpX c=1 sm=1 tr=0 ts=6a04a804 cx=c_pps\n a=ZUDVJbHKkZYoAWA4fONUdg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19\n a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19\n a=xqWC_Br6kY4A:10 a=NGcC8JguVDcA:10 a=0kUYKlekyDsA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22\n a=64Cc0HZtAAAA:8 a=T-lFrMnA8onTQdNMNegA:9",
        "X-Proofpoint-ORIG-GUID": "2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3",
        "X-Proofpoint-GUID": "2UGvCPndxxCSqnSZ_e6AGUT0X0DVDQA3",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-13_01,2026-05-13_01,2025-10-01_01",
        "X-Proofpoint-Spam-Reason": "safe",
        "Received-SPF": "pass client-ip=148.163.155.12;\n envelope-from=shaju.abraham@nutanix.com; helo=mx0b-002c1b01.pphosted.com",
        "X-Spam_score_int": "-31",
        "X-Spam_score": "-3.2",
        "X-Spam_bar": "---",
        "X-Spam_report": "(-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n UPPERCASE_50_75=0.008 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "Add a declarative description of every architecturally defined field in the\nArm64 ID registers in cpu-idregs.h.inc file. This file will be included\nmultiple times with different definitions to build the per-field arch values,\nper-register field descriptor arrays, arm-idregs table etc. The architecturely\ndefined values for each ID register field is extracted from kernel's\narch/arm64/tools/sysreg file. The safe-value tags and default values are\nderived from the kernel's ftr_bits array. Aarch32 ID registers are added\nwith dummy field so they can be defaulted to 0 by later commits.\n\nX-macro structure:\nIDREG_START(REG)\nIDREG_FIELD_START(REG, FIELD, SHIFT, LENGTH, SAFE_RULE, DEFAULT_VAL)\nIDREG_FIELD_ARCH_VAL(VALUE, NAME)\n...\nIDREG_FIELD_END(REG, FIELD)\n...\nIDREG_END(REG)\n\nCo-authored-by: Khushit Shah <khushit.shah@nutanix.com>\nSigned-off-by: Shaju Abraham <shaju.abraham@nutanix.com>\n---\n target/arm/cpu-idregs.h.inc | 1724 +++++++++++++++++++++++++++++++++++\n 1 file changed, 1724 insertions(+)\n create mode 100644 target/arm/cpu-idregs.h.inc",
    "diff": "diff --git a/target/arm/cpu-idregs.h.inc b/target/arm/cpu-idregs.h.inc\nnew file mode 100644\nindex 0000000000..5a627631c9\n--- /dev/null\n+++ b/target/arm/cpu-idregs.h.inc\n@@ -0,0 +1,1724 @@\n+/* SPDX-License-Identifier: GPL-2.0-or-later */\n+\n+/* ID_AA64ISAR0_EL1 */\n+IDREG_START(ID_AA64ISAR0_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR0, RES0_0,   0,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR0, RES0_0)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, AES,      4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aes\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pmull\")\n+IDREG_FIELD_END(ID_AA64ISAR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA1,     8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA1)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA2,    12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sha256\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sha512\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA2)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, CRC32,   16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, CRC32)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, ATOMIC,  20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"LSE128\")\n+IDREG_FIELD_END(ID_AA64ISAR0, ATOMIC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RES0_24, 24,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR0, RES0_24)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RDM,     28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, RDM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SHA3,    32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SHA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SM3,     36,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SM3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, SM4,     40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, SM4)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, DP,      44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, DP)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, FHM,     48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, FHM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, TS,      52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"flagm\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"flagm2\")\n+IDREG_FIELD_END(ID_AA64ISAR0, TS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, TLB,     56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"os\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"range\")\n+IDREG_FIELD_END(ID_AA64ISAR0, TLB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR0, RNDR,    60,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR0, RNDR)\n+\n+IDREG_END(ID_AA64ISAR0_EL1)\n+\n+/* ID_AA64ISAR1_EL1 */\n+IDREG_START(ID_AA64ISAR1_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR1, DPB,      0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"dpb2\")\n+IDREG_FIELD_END(ID_AA64ISAR1, DPB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, APA,      4,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR1, APA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, API,      8,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR1, API)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, JSCVT,   12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, JSCVT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, FCMA,    16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, FCMA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, LRCPC,   20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"lrcpc2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"lrcpc3\")\n+IDREG_FIELD_END(ID_AA64ISAR1, LRCPC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, GPA,     24,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, GPA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, GPI,     28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, GPI)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, FRINTTS, 32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, FRINTTS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, SB,      36,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, SB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, SPECRES, 40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cosp_rctx\")\n+IDREG_FIELD_END(ID_AA64ISAR1, SPECRES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, BF16,    44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ebf16\")\n+IDREG_FIELD_END(ID_AA64ISAR1, BF16)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, DGH,     48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, DGH)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, I8MM,    52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, I8MM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, XS,      56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR1, XS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR1, LS64,    60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"ls64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ls64_v\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ls64_accdata\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"ls64wb\")\n+IDREG_FIELD_END(ID_AA64ISAR1, LS64)\n+\n+IDREG_END(ID_AA64ISAR1_EL1)\n+\n+/*  ID_AA64ISAR2_EL1  */\n+IDREG_START(ID_AA64ISAR2_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR2, WFXT,          0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, WFXT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, RPRES,         4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, RPRES)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, GPA3,          8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, GPA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, APA3,         12,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"pauth\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"epac\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pauth2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"fpac\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"fpaccombine\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"pauth_lr\")\n+IDREG_FIELD_END(ID_AA64ISAR2, APA3)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, MOPS,         16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, MOPS)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, BC,           20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, BC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PAC_FRAC,     24,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PAC_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, CLRBHB,       28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, CLRBHB)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, SYSREG_128,   32,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, SYSREG_128)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, SYSINSTR_128, 36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, SYSINSTR_128)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PRFMSLC,      40,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PRFMSLC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, PCDPHINT,     44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, PCDPHINT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, RPRFM,        48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, RPRFM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, CSSC,         52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cmpbr\")\n+IDREG_FIELD_END(ID_AA64ISAR2, CSSC)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, LUT,          56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, LUT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR2, ATS1A,        60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR2, ATS1A)\n+\n+IDREG_END(ID_AA64ISAR2_EL1)\n+\n+/*  ID_AA64PFR0_EL1  */\n+IDREG_START(ID_AA64PFR0_EL1)\n+IDREG_FIELD_START(ID_AA64PFR0, EL0,     0,  4, LOWER,  0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL0)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL1,     4,  4, LOWER,  0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL1)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL2,     8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, EL3,    12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"aarch64\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"aarch32\")\n+IDREG_FIELD_END(ID_AA64PFR0, EL3)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, FP,     16,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"fp16\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR0, FP)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, ADVSIMD,20,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"fp16\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR0, ADVSIMD)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, GIC,    24,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v4p1\")\n+IDREG_FIELD_END(ID_AA64PFR0, GIC)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, RAS,    28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v2\")\n+IDREG_FIELD_END(ID_AA64PFR0, RAS)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, SVE,    32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, SVE)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, SEL2,   36,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, SEL2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, MPAM,   40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"1\")\n+IDREG_FIELD_END(ID_AA64PFR0, MPAM)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, AMU,    44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_END(ID_AA64PFR0, AMU)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, DIT,    48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, DIT)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, RME,    52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, RME)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, CSV2,   56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"csv2_2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"csv2_3\")\n+IDREG_FIELD_END(ID_AA64PFR0, CSV2)\n+\n+IDREG_FIELD_START(ID_AA64PFR0, CSV3,   60,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR0, CSV3)\n+\n+IDREG_END(ID_AA64PFR0_EL1)\n+\n+/*  ID_AA64PFR1_EL1  */\n+IDREG_START(ID_AA64PFR1_EL1)\n+IDREG_FIELD_START(ID_AA64PFR1, BT,        0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, BT)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, SSBS,      4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ssbs2\")\n+IDREG_FIELD_END(ID_AA64PFR1, SSBS)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTE,       8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"mte2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"mte3\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTE)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RAS_FRAC, 12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"rasv1p1\")\n+IDREG_FIELD_END(ID_AA64PFR1, RAS_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MPAM_FRAC,16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"minor_0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"minor_1\")\n+IDREG_FIELD_END(ID_AA64PFR1, MPAM_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RES0_20,  20,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR1, RES0_20)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, SME,      24,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sme2\")\n+IDREG_FIELD_END(ID_AA64PFR1, SME)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, RNDR_TRAP,28,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, RNDR_TRAP)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, CSV2_FRAC,32,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"csv2_1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"csv2_1p2\")\n+IDREG_FIELD_END(ID_AA64PFR1, CSV2_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, NMI,      36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, NMI)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTE_FRAC, 40,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"async\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTE_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, GCS,      44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, GCS)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, THE,      48,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, THE)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, MTEX,     52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"mte\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"mte4\")\n+IDREG_FIELD_END(ID_AA64PFR1, MTEX)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, DF2,      56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, DF2)\n+\n+IDREG_FIELD_START(ID_AA64PFR1, PFAR,     60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR1, PFAR)\n+\n+IDREG_END(ID_AA64PFR1_EL1)\n+\n+/*  ID_AA64MMFR0_EL1 */\n+IDREG_START(ID_AA64MMFR0_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR0, PARANGE,    0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"32\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"36\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"40\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"42\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"44\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"48\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"52\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"56\")\n+IDREG_FIELD_END(ID_AA64MMFR0, PARANGE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, ASIDBITS,   4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"8\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"16\")\n+IDREG_FIELD_END(ID_AA64MMFR0, ASIDBITS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, BIGEND,     8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, BIGEND)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, SNSMEM,    12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, SNSMEM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, BIGENDEL0, 16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, BIGENDEL0)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16,   20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64,   24,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4,    28,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"52_bit\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN16_2, 32,  4, EXACT,  0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran16\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN16_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN64_2, 36,  4, EXACT,  0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran64\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN64_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, TGRAN4_2,  40,  4, EXACT,  0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"tgran4\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"52_bit\")\n+IDREG_FIELD_END(ID_AA64MMFR0, TGRAN4_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, EXS,       44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR0, EXS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, RES0_48,   48,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR0, RES0_48)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, FGT,       56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"fgt2\")\n+IDREG_FIELD_END(ID_AA64MMFR0, FGT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR0, ECV,       60,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cntpoff\")\n+IDREG_FIELD_END(ID_AA64MMFR0, ECV)\n+\n+IDREG_END(ID_AA64MMFR0_EL1)\n+\n+/*  ID_AA64MMFR1_EL1  */\n+IDREG_START(ID_AA64MMFR1_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR1, HAFDBS,    0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"af\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"dbm\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"haft\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"hdbss\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HAFDBS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, VMIDBITS,  4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"8\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"16\")\n+IDREG_FIELD_END(ID_AA64MMFR1, VMIDBITS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, VH,        8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, VH)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, HPDS,     12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"hpds2\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HPDS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, LO,       16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, LO)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, PAN,      20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pan2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"pan3\")\n+IDREG_FIELD_END(ID_AA64MMFR1, PAN)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, SPECSEI,  24,  4, HIGHER, 0b0001)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, SPECSEI)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, XNX,      28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, XNX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, TWED,     32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, TWED)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, ETS,      36,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ets2\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ets3\")\n+IDREG_FIELD_END(ID_AA64MMFR1, ETS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, HCX,      40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, HCX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, AFP,      44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, AFP)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, NTLBPA,   48,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, NTLBPA)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, TIDCP1,   52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, TIDCP1)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, CMOW,     56,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, CMOW)\n+\n+IDREG_FIELD_START(ID_AA64MMFR1, ECBHB,    60,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR1, ECBHB)\n+\n+IDREG_END(ID_AA64MMFR1_EL1)\n+\n+/*  ID_AA64MMFR2_EL1  */\n+IDREG_START(ID_AA64MMFR2_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR2, CNP,      0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, CNP)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, UAO,      4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, UAO)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, LSM,      8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, LSM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, IESB,    12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, IESB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, VARANGE, 16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"48\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"52\")\n+IDREG_FIELD_END(ID_AA64MMFR2, VARANGE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, CCIDX,   20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"32\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"64\")\n+IDREG_FIELD_END(ID_AA64MMFR2, CCIDX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, NV,      24,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"nv2\")\n+IDREG_FIELD_END(ID_AA64MMFR2, NV)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, ST,      28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"39\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"48_47\")\n+IDREG_FIELD_END(ID_AA64MMFR2, ST)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, AT,      32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, AT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, IDS,     36,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0x0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"0x18\")\n+IDREG_FIELD_END(ID_AA64MMFR2, IDS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, FWB,     40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, FWB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, RES0_44, 44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR2, RES0_44)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, TTL,     48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, TTL)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, BBM,     52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"0\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"1\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"2\")\n+IDREG_FIELD_END(ID_AA64MMFR2, BBM)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, EVT,     56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ttlbxs\")\n+IDREG_FIELD_END(ID_AA64MMFR2, EVT)\n+\n+IDREG_FIELD_START(ID_AA64MMFR2, E0PD,    60,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR2, E0PD)\n+\n+IDREG_END(ID_AA64MMFR2_EL1)\n+\n+/* ID_AA64MMFR3_EL1  */\n+IDREG_START(ID_AA64MMFR3_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR3, TCRX,       0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, TCRX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SCTLRX,     4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SCTLRX)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S1PIE,      8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S1PIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S2PIE,     12,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S2PIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S1POE,     16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S1POE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, S2POE,     20,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, S2POE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, AIE,       24,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, AIE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, MEC,       28,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, MEC)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, D128,      32,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, D128)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, D128_2,    36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, D128_2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SNERR,     40,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sync\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ANERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ANERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SNERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, ANERR,     44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"async\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ANERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ANERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, ANERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, RES0_48,   48,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR3, RES0_48)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SDERR,     52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"dev_sync\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ADERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ADERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SDERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, ADERR,     56,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"dev_async\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ADERR\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"ADERR_IND\")\n+IDREG_FIELD_END(ID_AA64MMFR3, ADERR)\n+\n+IDREG_FIELD_START(ID_AA64MMFR3, SPEC_FPACC,60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR3, SPEC_FPACC)\n+\n+IDREG_END(ID_AA64MMFR3_EL1)\n+\n+/* ID_AA64DFR0_EL1 */\n+IDREG_START(ID_AA64DFR0_EL1)\n+IDREG_FIELD_START(ID_AA64DFR0, DEBUGVER,    0,  4, LOWER,  0x6)\n+IDREG_FIELD_ARCH_VAL(0b0110, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"vhe\")\n+IDREG_FIELD_ARCH_VAL(0b1000, \"v8p2\")\n+IDREG_FIELD_ARCH_VAL(0b1001, \"v8p4\")\n+IDREG_FIELD_ARCH_VAL(0b1010, \"v8p8\")\n+IDREG_FIELD_ARCH_VAL(0b1011, \"v8p9\")\n+IDREG_FIELD_END(ID_AA64DFR0, DEBUGVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEVER,    4,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMUVER,      8,  4, SIGNED_LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"v3p1\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"v3p4\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"v3p5\")\n+IDREG_FIELD_ARCH_VAL(0b0111, \"v3p7\")\n+IDREG_FIELD_ARCH_VAL(0b1000, \"v3p8\")\n+IDREG_FIELD_ARCH_VAL(0b1001, \"v3p9\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"imp_def\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMUVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, BRPS,       12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, BRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMSS,       16,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMSS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, WRPS,       20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, WRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, SEBEP,      24,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, SEBEP)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, CTX_CMPS,   28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR0, CTX_CMPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, PMSVER,     32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"v1p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"v1p2\")\n+IDREG_FIELD_ARCH_VAL(0b0100, \"v1p3\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"v1p4\")\n+IDREG_FIELD_ARCH_VAL(0b0110, \"v1p5\")\n+IDREG_FIELD_END(ID_AA64DFR0, PMSVER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, DOUBLELOCK, 36,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64DFR0, DOUBLELOCK)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEFILT,  40,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEFILT)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, TRACEBUFFER,44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"trbe_v1p1\")\n+IDREG_FIELD_END(ID_AA64DFR0, TRACEBUFFER)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, MTPMU,      48,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"ni_impdef\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64DFR0, MTPMU)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, BRBE,       52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"brbe_v1p1\")\n+IDREG_FIELD_END(ID_AA64DFR0, BRBE)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, EXTTRCBUFF, 56,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR0, EXTTRCBUFF)\n+\n+IDREG_FIELD_START(ID_AA64DFR0, HPMN0,      60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"unpredictable\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"def\")\n+IDREG_FIELD_END(ID_AA64DFR0, HPMN0)\n+\n+IDREG_END(ID_AA64DFR0_EL1)\n+\n+/*  ID_AA64ZFR0_EL1  */\n+IDREG_START(ID_AA64ZFR0_EL1)\n+IDREG_FIELD_START(ID_AA64ZFR0, SVEVER,      0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sve2\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sve2p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"sve2p2\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SVEVER)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, AES,         4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"pmull128\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"aes2\")\n+IDREG_FIELD_END(ID_AA64ZFR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_8,      8,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_8)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, ELTPERM,    12,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, ELTPERM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, BITPERM,    16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, BITPERM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, BFLOAT16,   20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"ebf16\")\n+IDREG_FIELD_END(ID_AA64ZFR0, BFLOAT16)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, B16B16,     24,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"bfscale\")\n+IDREG_FIELD_END(ID_AA64ZFR0, B16B16)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_28,    28,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_28)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, SHA3,       32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SHA3)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_36,    36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_36)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, SM4,        40,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, SM4)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, I8MM,       44,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, I8MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F16MM,      48,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F16MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F32MM,      52,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F32MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, F64MM,      56,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ZFR0, F64MM)\n+\n+IDREG_FIELD_START(ID_AA64ZFR0, RES0_60,    60,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ZFR0, RES0_60)\n+\n+IDREG_END(ID_AA64ZFR0_EL1)\n+\n+/*  ID_AA64SMFR0_EL1  */\n+IDREG_START(ID_AA64SMFR0_EL1)\n+IDREG_FIELD_START(ID_AA64SMFR0, SMOP4,      0,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SMOP4)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_1,     1, 15, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_1)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, STMOP,     16,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, STMOP)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_17,   17,  6, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_17)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SFEXPA,    23,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SFEXPA)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, AES,       24,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, AES)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SBITPERM,  25,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SBITPERM)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_26,   26,  2, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_26)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8DP2,    28,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8DP2)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8DP4,    29,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8DP4)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SF8FMA,    30,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SF8FMA)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_31,   31,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_31)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F32F32,    32,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F32F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, BI32I32,   33,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, BI32I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, B16F32,    34,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, B16F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F16F32,    35,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F16F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I8I32,     36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I8I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F8F32,     40,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F8F32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F8F16,     41,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F8F16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F16F16,    42,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F16F16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, B16B16,    43,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, B16B16)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I16I32,    44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0101, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I16I32)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, F64F64,    48,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, F64F64)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_49,   49,  3, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_49)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, I16I64,    52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, I16I64)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, SMEVER,    56,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"sme\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"sme2\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"sme2p1\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"sme2p2\")\n+IDREG_FIELD_END(ID_AA64SMFR0, SMEVER)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, LUTV2,     60,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, LUTV2)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, RES0_61,   61,  2, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64SMFR0, RES0_61)\n+\n+IDREG_FIELD_START(ID_AA64SMFR0, FA64,      63,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64SMFR0, FA64)\n+\n+IDREG_END(ID_AA64SMFR0_EL1)\n+\n+/* CTR_EL0 */\n+IDREG_START(CTR_EL0)\n+IDREG_FIELD_START(CTR_EL0, IMINLINE,    0,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, IMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_4,      4, 10, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_4)\n+\n+IDREG_FIELD_START(CTR_EL0, L1IP,       14,  2, EXACT,  0b10)\n+IDREG_FIELD_ARCH_VAL(0b00, \"reserved_vpipt\")\n+IDREG_FIELD_ARCH_VAL(0b01, \"reserved_aivivt\")\n+IDREG_FIELD_ARCH_VAL(0b10, \"vipt\")\n+IDREG_FIELD_ARCH_VAL(0b11, \"pipt\")\n+IDREG_FIELD_END(CTR_EL0, L1IP)\n+\n+IDREG_FIELD_START(CTR_EL0, DMINLINE,   16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, DMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, ERG,        20,  4, HIGHER_OR_ZERO,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, ERG)\n+\n+IDREG_FIELD_START(CTR_EL0, CWG,        24,  4, HIGHER_OR_ZERO,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, CWG)\n+\n+IDREG_FIELD_START(CTR_EL0, IDC,        28,  1, LOWER,  0b1)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, IDC)\n+\n+IDREG_FIELD_START(CTR_EL0, DIC,        29,  1, LOWER,  0b1)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, DIC)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_30,    30,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_30)\n+\n+IDREG_FIELD_START(CTR_EL0, RES1_31,    31,  1, EXACT,  1)\n+IDREG_FIELD_ARCH_VAL(1, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES1_31)\n+\n+IDREG_FIELD_START(CTR_EL0, TMINLINE,   32,  6, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(CTR_EL0, TMINLINE)\n+\n+IDREG_FIELD_START(CTR_EL0, RES0_38,    38, 26, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(CTR_EL0, RES0_38)\n+\n+IDREG_END(CTR_EL0)\n+\n+/* ID_AA64ISAR3_EL1 */\n+IDREG_START(ID_AA64ISAR3_EL1)\n+IDREG_FIELD_START(ID_AA64ISAR3, CPA,       0,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"cpa2\")\n+IDREG_FIELD_END(ID_AA64ISAR3, CPA)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, FAMINMAX,  4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, FAMINMAX)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, TLBIW,     8,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, TLBIW)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, PACM,     12,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"trivial_imp\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"full_imp\")\n+IDREG_FIELD_END(ID_AA64ISAR3, PACM)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, LSFE,     16,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, LSFE)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, OCCMO,    20,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, OCCMO)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, LSUI,     24,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, LSUI)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, FPRCVT,   28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64ISAR3, FPRCVT)\n+\n+IDREG_FIELD_START(ID_AA64ISAR3, RES0_32,  32, 32, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64ISAR3, RES0_32)\n+\n+IDREG_END(ID_AA64ISAR3_EL1)\n+\n+/* ID_AA64PFR2_EL1 */\n+IDREG_START(ID_AA64PFR2_EL1)\n+IDREG_FIELD_START(ID_AA64PFR2, MTEPERM,       0,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTEPERM)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, MTESTOREONLY,  4,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTESTOREONLY)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, MTEFAR,        8,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, MTEFAR)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, GCIE,         12,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, GCIE)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, UINJ,         16,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, UINJ)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, RES0_20,      20, 12, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR2, RES0_20)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, FPMR,         32,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64PFR2, FPMR)\n+\n+IDREG_FIELD_START(ID_AA64PFR2, RES0_36,      36, 28, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64PFR2, RES0_36)\n+\n+IDREG_END(ID_AA64PFR2_EL1)\n+\n+/*  ID_AA64FPFR0_EL1  */\n+IDREG_START(ID_AA64FPFR0_EL1)\n+IDREG_FIELD_START(ID_AA64FPFR0, F8E5M2,    0,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8E5M2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8E4M3,    1,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8E4M3)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, RES0_2,    2, 24, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64FPFR0, RES0_2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8MM4,    26,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8MM4)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8MM8,    27,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8MM8)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8DP2,    28,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8DP2)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8DP4,    29,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8DP4)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8FMA,    30,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8FMA)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, F8CVT,    31,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b1, \"on\")\n+IDREG_FIELD_END(ID_AA64FPFR0, F8CVT)\n+\n+IDREG_FIELD_START(ID_AA64FPFR0, RES0_32,  32, 32, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64FPFR0, RES0_32)\n+\n+IDREG_END(ID_AA64FPFR0_EL1)\n+\n+\n+/*  ID_AA64MMFR4_EL1  */\n+IDREG_START(ID_AA64MMFR4_EL1)\n+IDREG_FIELD_START(ID_AA64MMFR4, POPS,      0,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, POPS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, EIESB,     4,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"toel3\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"toelx\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"any\")\n+IDREG_FIELD_END(ID_AA64MMFR4, EIESB)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, ASID2,     8,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, ASID2)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, HACDBS,   12,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, HACDBS)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, FGWTE3,   16,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, FGWTE3)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, NV_FRAC,  20,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"nv_nv2\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"nv2_only\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"nv2p1\")\n+IDREG_FIELD_END(ID_AA64MMFR4, NV_FRAC)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, E2H0,     24,  4, SIGNED_LOWER,  0b1111)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b1110, \"ni_nv1\")\n+IDREG_FIELD_ARCH_VAL(0b1111, \"off\")\n+IDREG_FIELD_END(ID_AA64MMFR4, E2H0)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RMEGDI,   28,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, RMEGDI)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_32,  32,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_32)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, E3DSE,    36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, E3DSE)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_40,  40,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_40)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, SRMASK,   44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64MMFR4, SRMASK)\n+\n+IDREG_FIELD_START(ID_AA64MMFR4, RES0_48,  48, 16, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_AA64MMFR4, RES0_48)\n+\n+IDREG_END(ID_AA64MMFR4_EL1)\n+\n+/*  ID_AA64DFR1_EL1  */\n+IDREG_START(ID_AA64DFR1_EL1)\n+IDREG_FIELD_START(ID_AA64DFR1, SYSPMUID,    0,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, SYSPMUID)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, BRPS,        8,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, BRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, WRPS,       16,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, WRPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, CTX_CMPS,   24,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, CTX_CMPS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, SPMU,       32,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_ARCH_VAL(0b0010, \"imp_spmzr\")\n+IDREG_FIELD_END(ID_AA64DFR1, SPMU)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, PMICNTR,    36,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, PMICNTR)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ABLE,       40,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, ABLE)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ITE,        44,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, ITE)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, EBEP,       48,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"on\")\n+IDREG_FIELD_END(ID_AA64DFR1, EBEP)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, DPFZS,      52,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"ignr\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"frzn\")\n+IDREG_FIELD_END(ID_AA64DFR1, DPFZS)\n+\n+IDREG_FIELD_START(ID_AA64DFR1, ABL_CMPS,   56,  8, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(ID_AA64DFR1, ABL_CMPS)\n+\n+IDREG_END(ID_AA64DFR1_EL1)\n+\n+/*  MIDR_EL1  */\n+IDREG_START(MIDR_EL1)\n+IDREG_FIELD_START(MIDR, REVISION,       0,  4, ANY,  0)\n+IDREG_FIELD_END(MIDR, REVISION)\n+\n+IDREG_FIELD_START(MIDR, PARTNUM,        4, 12, ANY,  0)\n+IDREG_FIELD_END(MIDR, PARTNUM)\n+\n+IDREG_FIELD_START(MIDR, ARCHITECTURE,  16,  4, ANY,  0)\n+IDREG_FIELD_END(MIDR, ARCHITECTURE)\n+\n+IDREG_FIELD_START(MIDR, VARIANT,       20,  4, ANY,  0)\n+IDREG_FIELD_END(MIDR, VARIANT)\n+\n+IDREG_FIELD_START(MIDR, IMPLEMENTER,   24,  8, ANY,  0)\n+IDREG_FIELD_END(MIDR, IMPLEMENTER)\n+\n+IDREG_FIELD_START(MIDR, RES0_32,       32, 32, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(MIDR, RES0_32)\n+\n+IDREG_END(MIDR_EL1)\n+\n+/* REVIDR_EL1  */\n+IDREG_START(REVIDR_EL1)\n+IDREG_FIELD_START(REVIDR, VAL,  0, 64, ANY,  0)\n+IDREG_FIELD_END(REVIDR, VAL)\n+\n+IDREG_END(REVIDR_EL1)\n+\n+/* AIDR_EL1  */\n+IDREG_START(AIDR_EL1)\n+IDREG_FIELD_START(AIDR, VAL,  0, 64, ANY,  0)\n+IDREG_FIELD_END(AIDR, VAL)\n+\n+IDREG_END(AIDR_EL1)\n+\n+/* DCZID_EL0 */\n+IDREG_START(DCZID_EL0)\n+IDREG_FIELD_START(DCZID_EL0, BS,       0,  4, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(DCZID_EL0, BS)\n+\n+IDREG_FIELD_START(DCZID_EL0, DZP,      4,  1, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL_ANY\n+IDREG_FIELD_END(DCZID_EL0, DZP)\n+\n+IDREG_FIELD_START(DCZID_EL0, RES0_5,   5, 59, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(DCZID_EL0, RES0_5)\n+\n+IDREG_END(DCZID_EL0)\n+\n+\n+/*  ID_AA64AFR0_EL1  */\n+IDREG_START(ID_AA64AFR0_EL1)\n+IDREG_FIELD_START(ID_AA64AFR0, VAL,  0, 64, EXACT,  0)\n+IDREG_FIELD_END(ID_AA64AFR0, VAL)\n+\n+IDREG_END(ID_AA64AFR0_EL1)\n+\n+/*  ID_AA64AFR1_EL1  */\n+IDREG_START(ID_AA64AFR1_EL1)\n+IDREG_FIELD_START(ID_AA64AFR1, VAL,  0, 64, EXACT,  0)\n+IDREG_FIELD_END(ID_AA64AFR1, VAL)\n+\n+IDREG_END(ID_AA64AFR1_EL1)\n+\n+ /* AArch32 ID registers */\n+\n+/*  ID_PFR0_EL1  */\n+IDREG_START(ID_PFR0_EL1)\n+IDREG_FIELD_START(ID_PFR0, VAL,  0, 64, EXACT,  0)\n+IDREG_FIELD_END(ID_PFR0, VAL)\n+\n+IDREG_END(ID_PFR0_EL1)\n+\n+/*  ID_PFR1_EL1  */\n+IDREG_START(ID_PFR1_EL1)\n+IDREG_FIELD_START(ID_PFR1, VAL_LO,    0, 28, EXACT,  0)\n+IDREG_FIELD_END(ID_PFR1, VAL_LO)\n+\n+IDREG_FIELD_START(ID_PFR1, GIC,      28,  4, LOWER,  0)\n+IDREG_FIELD_ARCH_VAL(0b0000, \"off\")\n+IDREG_FIELD_ARCH_VAL(0b0001, \"gicv3\")\n+IDREG_FIELD_ARCH_VAL(0b0011, \"gicv4p1\")\n+IDREG_FIELD_END(ID_PFR1, GIC)\n+\n+IDREG_FIELD_START(ID_PFR1, RES0_HI, 32, 32, EXACT,  0)\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_PFR1, RES0_HI)\n+\n+IDREG_END(ID_PFR1_EL1)\n+\n+/* ID_DFR0_EL1  */\n+IDREG_START(ID_DFR0_EL1)\n+IDREG_FIELD_START(ID_DFR0, VAL_LO,    0, 24, EXACT,  0 )\n+IDREG_FIELD_END(ID_DFR0, VAL_LO)\n+\n+IDREG_FIELD_START(ID_DFR0, PMU,      24,  4, LOWER,  0 )\n+IDREG_FIELD_END(ID_DFR0, PMU)\n+\n+IDREG_FIELD_START(ID_DFR0, VAL_HI,   28,  4, EXACT,  0 )\n+IDREG_FIELD_END(ID_DFR0, VAL_HI)\n+\n+IDREG_FIELD_START(ID_DFR0, RES0_HI, 32, 32, EXACT,  0 )\n+IDREG_FIELD_ARCH_VAL(0, NULL)\n+IDREG_FIELD_END(ID_DFR0, RES0_HI)\n+\n+IDREG_END(ID_DFR0_EL1)\n+\n+/*  ID_AFR0_EL1  */\n+IDREG_START(ID_AFR0_EL1)\n+IDREG_FIELD_START(ID_AFR0, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_AFR0, VAL)\n+\n+IDREG_END(ID_AFR0_EL1)\n+\n+/* ID_MMFR0_EL1  */\n+IDREG_START(ID_MMFR0_EL1)\n+IDREG_FIELD_START(ID_MMFR0, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR0, VAL)\n+\n+IDREG_END(ID_MMFR0_EL1)\n+\n+/* ID_MMFR1_EL1  */\n+IDREG_START(ID_MMFR1_EL1)\n+IDREG_FIELD_START(ID_MMFR1, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR1, VAL)\n+\n+IDREG_END(ID_MMFR1_EL1)\n+\n+/* ID_MMFR2_EL1 */\n+IDREG_START(ID_MMFR2_EL1)\n+IDREG_FIELD_START(ID_MMFR2, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR2, VAL)\n+\n+IDREG_END(ID_MMFR2_EL1)\n+\n+/* ID_MMFR3_EL1  */\n+IDREG_START(ID_MMFR3_EL1)\n+IDREG_FIELD_START(ID_MMFR3, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR3, VAL)\n+\n+IDREG_END(ID_MMFR3_EL1)\n+\n+/*  ID_MMFR4_EL1  */\n+IDREG_START(ID_MMFR4_EL1)\n+IDREG_FIELD_START(ID_MMFR4, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR4, VAL)\n+\n+IDREG_END(ID_MMFR4_EL1)\n+\n+/* ID_MMFR5_EL1  */\n+IDREG_START(ID_MMFR5_EL1)\n+IDREG_FIELD_START(ID_MMFR5, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_MMFR5, VAL)\n+\n+IDREG_END(ID_MMFR5_EL1)\n+\n+/* ID_ISAR0_EL1  */\n+IDREG_START(ID_ISAR0_EL1)\n+IDREG_FIELD_START(ID_ISAR0, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR0, VAL)\n+\n+IDREG_END(ID_ISAR0_EL1)\n+\n+/*  ID_ISAR1_EL1  */\n+IDREG_START(ID_ISAR1_EL1)\n+IDREG_FIELD_START(ID_ISAR1, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR1, VAL)\n+\n+IDREG_END(ID_ISAR1_EL1)\n+\n+/*  ID_ISAR2_EL1  */\n+IDREG_START(ID_ISAR2_EL1)\n+IDREG_FIELD_START(ID_ISAR2, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR2, VAL)\n+\n+IDREG_END(ID_ISAR2_EL1)\n+\n+/*  ID_ISAR3_EL1  */\n+IDREG_START(ID_ISAR3_EL1)\n+IDREG_FIELD_START(ID_ISAR3, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR3, VAL)\n+\n+IDREG_END(ID_ISAR3_EL1)\n+\n+/*  ID_ISAR4_EL1  */\n+IDREG_START(ID_ISAR4_EL1)\n+IDREG_FIELD_START(ID_ISAR4, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR4, VAL)\n+\n+IDREG_END(ID_ISAR4_EL1)\n+\n+/* ID_ISAR5_EL1  */\n+IDREG_START(ID_ISAR5_EL1)\n+IDREG_FIELD_START(ID_ISAR5, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR5, VAL)\n+\n+IDREG_END(ID_ISAR5_EL1)\n+\n+/*  ID_ISAR6_EL1  */\n+IDREG_START(ID_ISAR6_EL1)\n+IDREG_FIELD_START(ID_ISAR6, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_ISAR6, VAL)\n+\n+IDREG_END(ID_ISAR6_EL1)\n+\n+/*  ID_PFR2_EL1  */\n+IDREG_START(ID_PFR2_EL1)\n+IDREG_FIELD_START(ID_PFR2, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_PFR2, VAL)\n+\n+IDREG_END(ID_PFR2_EL1)\n+\n+/*  ID_DFR1_EL1 */\n+IDREG_START(ID_DFR1_EL1)\n+IDREG_FIELD_START(ID_DFR1, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(ID_DFR1, VAL)\n+\n+IDREG_END(ID_DFR1_EL1)\n+\n+/*  MVFR0_EL1  */\n+IDREG_START(MVFR0_EL1)\n+IDREG_FIELD_START(MVFR0, VAL,  0, 64, EXACT,  0)\n+IDREG_FIELD_END(MVFR0, VAL)\n+\n+IDREG_END(MVFR0_EL1)\n+\n+/*  MVFR1_EL1  */\n+IDREG_START(MVFR1_EL1)\n+IDREG_FIELD_START(MVFR1, VAL,  0, 64, EXACT,  0 )\n+IDREG_FIELD_END(MVFR1, VAL)\n+\n+IDREG_END(MVFR1_EL1)\n+\n+/* MVFR2_EL1  */\n+IDREG_START(MVFR2_EL1)\n+IDREG_FIELD_START(MVFR2, VAL,  0, 64, EXACT,  0)\n+IDREG_FIELD_END(MVFR2, VAL)\n+\n+IDREG_END(MVFR2_EL1)\n",
    "prefixes": [
        "RFC",
        "v1",
        "02/13"
    ]
}