From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80047.outbound.protection.outlook.com [40.107.8.47]) by sourceware.org (Postfix) with ESMTPS id 64606385417C for ; Fri, 30 Sep 2022 12:00:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 64606385417C Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UnCGNXbnOpWPcMnXcJprCD75YzTy/0N/Hq8mTCN/X5gkItxEsq4ykB/EMpT4vbsQcIZb7ByVsICCmmX2rw1frNv6B0VvIzW0+LvmM0/urnQ/K1h0zWcy8ZVu+Q9FxtTNl7Br0XevDSWn2oW9dJztvEJTpYQ2rc5qW8DkkKNUwm7trV4PUsmLp24DrttfAgufZRWfNDs30cjhffvDPvQNNEDJoLoDzoCWg/Uy2Hsse2NX9MmjHX3I90AWgMXO697sFguaroa1tYmmJQo+UDM6LhY94ml9XwscuTdoXt+0HSWaKHUiB2V9WyDotdyqE4x7MCnWhCm1/S/oD13bNDZe8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=HdA3tpRpWA/akP/CTDJtJt2bazhAfOltRHTWECqHGPQ=; b=YckwP3+8S69HI1w94pvXi4cb94LtFNfXarZRxXyduGdHcMxqqOFFQqJMUxovCXYAMkIgbnyL1Mmt3M//RXAj89vHvvhITK2GV4T2HlHKBIcm1hIzjw+33gzcQhd88MDHEBYIHSLN1AfQk1vt8W/K1H57vSA2q5N+1f3GfGOWkes+tT7eyae+H8XKRE6i6VHqx1xv3r9RTEgBUbuNitzhpjSKjlhlnmS59nbvkFkF5p+O4H5C0lAzFJbMxVwSFigyjg9geePJYUkJrnm4qZEpTUQB0rVY0Tcydr4nS7FUoH9JEy8V7COTqwcqdsLCHQKqvHYmELEi/AUX4xR5OftVEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HdA3tpRpWA/akP/CTDJtJt2bazhAfOltRHTWECqHGPQ=; b=BSMj9U6iMzJxfUzkbvc62lS4UKaTSzjyEcn6wmGZsnx627pkZdlc8ajr7nvDm9pqMo36vCb2f7Gt6jdLKfB14YRSzhzIymIeVQy5ztIADB0CXKUZ0+nvmUwEQZ3FVjz2mZfH26u+ftcKBqG+HrKn06kbNBSEIlXgUn35ttsq7d/PAGnAevpmNEWdg/r1wNr31qqBo779oOdbw8U+AW16cC5H58ibZUQFBC80baqZlFG0YtVc+7Xc/GPhiQwJ0x4PDFqjQD8Kh3YBP0IX7dhHIlOw5lwCG0tT01cangqAsRdk1YAHZ6eHxqp1myCiWA+j3VOw5ovL5iDDdQjHwxlqPA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DBBPR04MB8009.eurprd04.prod.outlook.com (2603:10a6:10:1ef::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Fri, 30 Sep 2022 12:00:13 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2459:15ae:e6cb:218a%7]) with mapi id 15.20.5676.023; Fri, 30 Sep 2022 12:00:13 +0000 Message-ID: Date: Fri, 30 Sep 2022 14:00:12 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: [PATCH 4/4] RISC-V/gas: allow generating up to 176-bit instructions with .insn Content-Language: en-US To: Binutils References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0068.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::15) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBBPR04MB8009:EE_ X-MS-Office365-Filtering-Correlation-Id: 4768126a-9763-491c-1455-08daa2db54d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /HbMrHSWF4Pe7j2isxdb3haf4UDrf0LUa+fyp6CLf+tpMskUEzbJq2OW4YxA1zPzC5paD3JHK9FQF+Jg76noRCwu0gHrHX9B5nmcfOdeOORa620EPkB5RCDhS7ouMGOSJGtGl1k3fm3/cfe8nlPUdlXYOImZKRTDLO1at6JiCXNokUi3YlAN6rmIrXAMMtvvxCg7Kzy30iRvnusEsegC00d3OcBOQXtPWgVPajYD2WEhJ+yk0MxuQxv17XhQc5SVYVcpTlurv3doPq2G7zzNELyHVfn+yxdbp0reIRShvpdbsmO2KKmeml6MSvSsSNt4URcqB54xIwYSm6uehK6FbXpac+rXUM26x4kt4yy1/nhZLzjZc+wRU0Q9IPO2c/2scJBV/GF52czFludqifo50wopnBFEMbdofX9yZe92R8inbFcWHh10CjLN4Ncmna5ADM5BK8LNq1OyCuyu7bKvxn64tU1/sch+L0nSTK3l1+rPI1f1JSIXX5AXKivS0HGNmaJVXNAtldX2cOA5WlMQFhVNyDVZlqTPPPu1VBF8arpVjjxO9OkDBTg99FKj63e7E3griA2gayiCOALu+R45M5Lp7Ame6CF+CwXG1rqRe+2iCcRyyV/mMnhqSnWbiZl4GUWM0lroZurj2r0cUzNiAyixPEWDPdjwopA0ffutUQO3CYu7BCYq9zAHXYkKh2l5AZ2hNqkZINFBjqP7NgWL4OEZzV+pOdEXF2kA2/mdcncJcnwh1RBkNj5eW6Kd3qjH1copyj4sOlF9NL6X2nC4KJulkahjuko0GZpOS/IwSFuJhSCfJ3l6C/RLggitinK1nlO5DGgsptR4X2eHoDtSMQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(136003)(396003)(366004)(376002)(346002)(451199015)(31686004)(2906002)(5660300002)(36756003)(8936002)(38100700002)(66476007)(66556008)(41300700001)(6916009)(8676002)(316002)(66946007)(2616005)(6512007)(26005)(186003)(6506007)(86362001)(478600001)(31696002)(6486002)(142923001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eEVxcGIxZEJLcnFmSXlQY0xFN3N5NzB4bkVPRVdpdlhSdW9kRG1hZTA0N3h4?= =?utf-8?B?NW5BNDZQOUMrQitBSys0TGhPa1B3OXhqQUw1QitLOWxRb2pBRDRTVGJoTkJX?= =?utf-8?B?RGxXc3FTdmNjRnNyTmZyU3p2bW1aNDYwMitVc2RZVmIrK0llZmRCTUpwMkpE?= =?utf-8?B?bVdJQlFVOU5hRnJDRFNuTy9Qall1cEswVDRCVWl4Q2s3NHdvK05rUHVwVG12?= =?utf-8?B?MVYwWi9zWjNTNzJ3OEliME1vbjNTQkNtZ1BvNFhYSUx5VW9vVjlLLzNVZDZh?= =?utf-8?B?OGlHVDVIdmVHclJQbU9UQUhiVTczYXJzN2o4eWpyaEtPOXV2MURiUVZEelU4?= =?utf-8?B?RTU5bHh4QUUwd29DV3Z1ekhCRWowSTNHMUU5WXlwdkxJNUtEUlUzYms4Q1Y2?= =?utf-8?B?MXlvY2dOY1dHK0JKampOYndUUno5Ky9tZ2toMTBrb21FNCtkRlFiVkVVWFVN?= =?utf-8?B?NVVINWtNTnBYTkRnRkZoRTFKODk5dHBhdmNHN0d2aFJPeTNEa0ZkWHNJZ2dH?= =?utf-8?B?Q1c2RUxhTSs3cFR1SXIzb2Q0Z1k2bWNDSHJhcVN0ZTB2T200KzJQOUp2eml5?= =?utf-8?B?d3NKSlMyT1ZobG5qcmZsbkZnTjlXOEpJRG15azkwazhmMUZOMkJHQy92NTVC?= =?utf-8?B?Y1plV2tLV25JNE9XWWVuY0xEZG1CUm03THlielV2L3NWaDh3SnB6YTg1VW9X?= =?utf-8?B?bkJIamNhbCsxa2orN0pqV0k2d1dYWUtCdUplUUdPOWhETDd5a3hqRHZvRURO?= =?utf-8?B?c1ZLR1BTOC9iYW83WmhoZUFUSHlmUjdWMG1kTDE5V3lmUW0rS1RLZTF4T3ZC?= =?utf-8?B?Qld6aERkTU90QjRvZ3hzYmlxQmVWLzhDd1FjM0RPbW9hVGJSK3NNS0tzYUVC?= =?utf-8?B?R1ExMnhKSVBZTjlQQ01odFVnL3JZbDZvY1FnblRXTkhyeDlyNktKZ1BHYnM2?= =?utf-8?B?OWpIZWJmVGt4Z0RoYTBKTDd1clpYdWYwdU5VWGt4anhlUGxKTStKbnQvK3hG?= =?utf-8?B?OGhrVUoxTFpWOUNtVmd2dUhuTGhXT2F1UXlJOUtMMlU2TEcrVUxFdXlDeVZy?= =?utf-8?B?Y0M5U3JhZXpOak44NklzbVpmbHVQbmMvUlBTdTh0NlhPSE11dUJndGRzbjN5?= =?utf-8?B?WVQ2VWpkNmNvQ09oZTZrSEdWMFlZcVA3cGlUU0kzM2dpRWdTeDdhdVR0cFNR?= =?utf-8?B?Nm5wMTBoQ2VKT0dYMldLMkNRNGpHbExhK3JZQ3pNZUNzR1RWNGF3SDlYVXpE?= =?utf-8?B?L29lZkp5TGloWENITUlENlVZZ0RVR0JUYXlUeEkrYWtvN3JsN1B1UHBxVERY?= =?utf-8?B?WTVyM1cvOTJ1SjR4c1VXaXhHVFZ6eSsxQmUzNnBhOUpmc3dhOWFoZVVFZWhs?= =?utf-8?B?TmhDdHAwbWJvNEowK0lvRDRLNk5KcFVYNHBBRkhVajdraGdGK2I1Y2doc3lp?= =?utf-8?B?MUZlQ3AyS0xRQzB2MTVnM3BXdGFXVFhldWhXNktKL2FjNldTZktpMnhBNEpZ?= =?utf-8?B?QVFNQ1B1bkdxZ0FMeXc4cnNSNE5vVVR5Nm9TMUN6d25VN1Rod1ZveVhrVVNS?= =?utf-8?B?L2hqTXB1M2VDYlJNQTJEY0JnWktzRzluU2ZTMFU2MENZcFBZYU4ybkxZVWlh?= =?utf-8?B?RnhmbHU0bEFaZXJtVjNaRHNDQnkxc0NMSExRYzIyaGc4UzhoYmt6cHRXelVr?= =?utf-8?B?dS9wQWhvc1UyN21aSGI2V0QyWDJBVXBzUVlPaGpoRzhvN0M0Y3gzb2RURUI5?= =?utf-8?B?SmttcEwzeUduaUxWQnN5S1RrNkVVU3lHNkZSdGhrMWZmWU1EYVc1eDhDb0U2?= =?utf-8?B?NGpsOHd1U0JPemdIc1NFZmpYMnpGOFNUbUJQZWx5eUVjRjdwY0FaQ29jbndV?= =?utf-8?B?M3poTWhHckdLWllhRFF2dm9vT2hJNTUxWlo1aGxkYzBEN2YwdzlzaG92OHUv?= =?utf-8?B?U0Q4MEVIME9yYVBEZ0ZVKzF0elpyMnBCUHVaZ2hEUHpyam0yeGRSbFhMdTEr?= =?utf-8?B?bmFWeUNpWVZaMnRGQzZadC9mb1hvV1hZUEU5blNuRG5hVkRoV3NHbHg2QlZu?= =?utf-8?B?RExVcVcxV242ZVRwZmpmNnk2UTF3Rk1MdEdGUFlzZHRiWGV5SkQvc1BuTmRj?= =?utf-8?Q?9Am2WHZfOsmPRWMOJR3176yCO?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4768126a-9763-491c-1455-08daa2db54d6 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2022 12:00:13.1825 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jChPvZcmYVuPaJaYj9fySD5YlmnINr5C3RKOfGt5bBecTbiIgmNfymm+Qa1Kpxs4e/+tjHZw77bOpRTHFjXqCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB8009 X-Spam-Status: No, score=-3030.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: For the time being simply utilize O_big to avoid widening other fields, bypassing append_insn() etc. --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -3389,8 +3389,15 @@ riscv_ip_hardcode (char *str, do { expression (imm_expr); - if (imm_expr->X_op != O_constant) + switch (imm_expr->X_op) { + case O_constant: + values[num++] = (insn_t) imm_expr->X_add_number; + break; + case O_big: + values[num++] = generic_bignum[0]; + break; + default: /* The first value isn't constant, so it should be .insn . We have been parsed it in the riscv_ip. */ @@ -3398,9 +3405,8 @@ riscv_ip_hardcode (char *str, return error; return _("values must be constant"); } - values[num++] = (insn_t) imm_expr->X_add_number; } - while (*input_line_pointer++ == ',' && num < 2); + while (*input_line_pointer++ == ',' && num < 2 && imm_expr->X_op != O_big); input_line_pointer--; if (*input_line_pointer != '\0') @@ -3410,8 +3416,22 @@ riscv_ip_hardcode (char *str, insn->match = values[num - 1]; create_insn (ip, insn); unsigned int bytes = riscv_insn_length (insn->match); - if ((bytes < sizeof(values[0]) && values[num - 1] >> (8 * bytes) != 0) - || (num == 2 && values[0] != bytes)) + + if (num == 2 && values[0] != bytes) + return _("value conflicts with instruction length"); + + if (imm_expr->X_op == O_big) + { + if (bytes != imm_expr->X_add_number * CHARS_PER_LITTLENUM) + return _("value conflicts with instruction length"); + char *f = frag_more (bytes); + for (num = 0; num < imm_expr->X_add_number; ++num) + number_to_chars_littleendian (f + num * CHARS_PER_LITTLENUM, + generic_bignum[num], CHARS_PER_LITTLENUM); + return NULL; + } + + if (bytes < sizeof(values[0]) && values[num - 1] >> (8 * bytes) != 0) return _("value conflicts with instruction length"); return NULL; @@ -4473,7 +4493,7 @@ s_riscv_insn (int x ATTRIBUTE_UNUSED) else as_bad ("%s `%s'", error.msg, error.statement); } - else + else if (imm_expr.X_op != O_big) { gas_assert (insn.insn_mo->pinfo != INSN_MACRO); append_insn (&insn, &imm_expr, imm_reloc); --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -37,6 +37,9 @@ static inline unsigned int riscv_insn_le return 6; if ((insn & 0x7f) == 0x3f) /* 64-bit instructions. */ return 8; + /* 80- ... 176-bit instructions. */ + if ((insn & 0x7f) == 0x7f && (insn & 0x7000) != 0x7000) + return 10 + ((insn >> 11) & 0xe); /* Longer instructions not supported at the moment. */ return 2; } --- a/gas/testsuite/gas/riscv/insn.d +++ b/gas/testsuite/gas/riscv/insn.d @@ -74,7 +74,21 @@ Disassembly of section .text: [^:]+:[ ]+00000013[ ]+nop [^:]+:[ ]+001f 0000 0000[ ].* [^:]+:[ ]+0000003f 00000000[ ].* +[^:]+:[ ]+007f 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000 ? +[^:]+:[ ]+0000107f 00000000[ ]+[._a-z].* +[^:]+:[ ]+00000000 ? +[^:]+:[ ]+607f 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000 0000 0000 0000 ? +[^:]+:[ ]+0000 0000 0000 ? [^:]+:[ ]+0001[ ]+nop [^:]+:[ ]+00000013[ ]+nop [^:]+:[ ]+001f 0000 0000[ ].* [^:]+:[ ]+0000003f 00000000[ ].* +[^:]+:[ ]+007f 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000 ? +[^:]+:[ ]+0000107f 00000000[ ]+[._a-z].* +[^:]+:[ ]+00000000 ? +[^:]+:[ ]+607f 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000 0000 0000 0000 ? +[^:]+:[ ]+0000 0000 0000 ? --- a/gas/testsuite/gas/riscv/insn.s +++ b/gas/testsuite/gas/riscv/insn.s @@ -60,7 +60,13 @@ target: .insn 0x00000013 .insn 0x0000001f .insn 0x0000003f + .insn 0x007f + .insn 0x107f + .insn 0x607f .insn 0x2, 0x0001 .insn 0x4, 0x00000013 .insn 6, 0x0000001f .insn 8, 0x0000003f + .insn 10, 0x007f + .insn 12, 0x107f + .insn 22, 0x607f --- a/gas/testsuite/gas/riscv/insn-dwarf.d +++ b/gas/testsuite/gas/riscv/insn-dwarf.d @@ -65,8 +65,14 @@ insn.s +60 +0xac.* insn.s +61 +0xb0.* insn.s +62 +0xb6.* insn.s +63 +0xbe.* -insn.s +64 +0xc0.* -insn.s +65 +0xc4.* -insn.s +66 +0xca.* -insn.s +- +0xd2 +insn.s +64 +0xc8.* +insn.s +65 +0xd4.* +insn.s +66 +0xea.* +insn.s +67 +0xec.* +insn.s +68 +0xf0.* +insn.s +69 +0xf6.* +insn.s +70 +0xfe.* +insn.s +71 +0x108.* +insn.s +72 +0x114.* +insn.s +- +0x12a #pass --- a/gas/testsuite/gas/riscv/insn-fail.l +++ b/gas/testsuite/gas/riscv/insn-fail.l @@ -5,3 +5,13 @@ .*Error: unrecognized values `0x4,0x5,0x6' .*Error: value conflicts with instruction length `0x4,0x0001' .*Error: value conflicts with instruction length `0x2,0x00000013' +.*Error: value conflicts with instruction length `0x10+1f' +.*Error: value conflicts with instruction length `6,0x10+1f' +.*Error: value conflicts with instruction length `0x10+3f' +.*Error: value conflicts with instruction length `8,0x10+3f' +.*Error: value conflicts with instruction length `0x10+7f' +.*Error: value conflicts with instruction length `10,0x10+7f' +.*Error: value conflicts with instruction length `0x10+107f' +.*Error: value conflicts with instruction length `12,0x10+107f' +.*Error: value conflicts with instruction length `0x10+607f' +.*Error: value conflicts with instruction length `22,0x10+607f' --- a/gas/testsuite/gas/riscv/insn-fail.s +++ b/gas/testsuite/gas/riscv/insn-fail.s @@ -4,3 +4,13 @@ .insn 0x4, 0x5, 0x6 .insn 0x4, 0x0001 .insn 0x2, 0x00000013 + .insn 0x100000000001f + .insn 6, 0x100000000001f + .insn 0x1000000000000003f + .insn 8, 0x1000000000000003f + .insn 0x10000000000000000007f + .insn 10, 0x10000000000000000007f + .insn 0x100000000000000000000107f + .insn 12, 0x100000000000000000000107f + .insn 0x10000000000000000000000000000000000000000607f + .insn 22, 0x10000000000000000000000000000000000000000607f --- a/gas/testsuite/gas/riscv/insn-na.d +++ b/gas/testsuite/gas/riscv/insn-na.d @@ -63,7 +63,13 @@ Disassembly of section .text: [^:]+:[ ]+00000013[ ]+addi[ ]+zero,zero,0 [^:]+:[ ]+001f 0000 0000[ ].* [^:]+:[ ]+0000003f 00000000[ ].* +[^:]+:[ ]+007f 0000 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000107f 00000000 00000000[ ]+[._a-z].* +[^:]+:[ ]+607f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000[ ]+[._a-z].* [^:]+:[ ]+0001[ ]+c\.addi[ ]+zero,0 [^:]+:[ ]+00000013[ ]+addi[ ]+zero,zero,0 [^:]+:[ ]+001f 0000 0000[ ].* [^:]+:[ ]+0000003f 00000000[ ].* +[^:]+:[ ]+007f 0000 0000 0000 0000[ ]+[._a-z].* +[^:]+:[ ]+0000107f 00000000 00000000[ ]+[._a-z].* +[^:]+:[ ]+607f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000[ ]+[._a-z].*