From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20617.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::617]) by sourceware.org (Postfix) with ESMTPS id 1BC7A3857000 for ; Wed, 28 Apr 2021 14:25:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1BC7A3857000 Received: from AM6P192CA0028.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::41) by HE1PR08MB2905.eurprd08.prod.outlook.com (2603:10a6:7:31::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.26; Wed, 28 Apr 2021 14:25:03 +0000 Received: from VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:83:cafe::c9) by AM6P192CA0028.outlook.office365.com (2603:10a6:209:83::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.25 via Frontend Transport; Wed, 28 Apr 2021 14:25:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT050.mail.protection.outlook.com (10.152.19.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Wed, 28 Apr 2021 14:25:02 +0000 Received: ("Tessian outbound 9a5bb9d11315:v91"); Wed, 28 Apr 2021 14:25:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 435e923252797d83 X-CR-MTA-TID: 64aa7808 Received: from c4816dfdf6d0.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AAA88FC1-2532-4AA4-8C52-ED50A60B9F1D.1; Wed, 28 Apr 2021 14:24:51 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c4816dfdf6d0.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 28 Apr 2021 14:24:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dBKkUXAt8khSdj+glzdBwtnrjyWR1Ahr3QYKqlSj9oTSPEuHtSQM7boGLuG0BLKuzBJ7zqN49mq4EC4lqifErfLn3sGA4MOIkrKaUL8o8mXLiLj3KFM9evMGem3dRVOSHXvo5RC3seGvAsW9VbC9jwy+ktvqk+nz7PZ5AU+dvfr8IJU/U6lDh4X1ddKcIO37WQ4GHB+mExz+oshuzWXKquCU3QHorAV/KjKV6Qf7bsiQlgIb+41f8rqEhRA3Yg556PTrux+vGgEbsvHmdOjr/CfVKguyzaKhjgvguSeZKcl17a5ciVKz/wZiO86IqQORDSeOZ7lZ/ZmkA4xkm0GslA== 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-SenderADCheck; bh=67aqPtcKI73Q4EJUkS3B4hfKKmgQ6vV37KX/fKm3t4E=; b=LsiVrehgkDCxK8tROD4w3WyrNsUesmocJrcbHRRgF3VIVudSypNcMccBSjwbItmqxRx1GmRtx2XSglHJ9M8+1Gcutl5Kaq/3gSrcVSeQ4RqMH4jt1Kb1lYqGdGOCetkxlH5gvki5P9fPeH6r8ygRxyfDspaFMOmI3PQLP8slTzf8fFLgp5vMhLdvIhGmtwrK35za9Y5W3c0SyiLNOPjl8Z6mJqiw7OGy9bPU6SJCZia30iymiACpopqqo1aoOnjARE/8zXg4JjhsSIgfvxBS2uGgYl1Cu2lUMw+YRFG81IYh9akvPdaw+7x2hDVY3ikcQdQ/1Zgx4oaaXgtjpN+DVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DBBPR08MB4758.eurprd08.prod.outlook.com (2603:10a6:10:da::16) by DB6PR0801MB1638.eurprd08.prod.outlook.com (2603:10a6:4:38::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Wed, 28 Apr 2021 14:24:44 +0000 Received: from DBBPR08MB4758.eurprd08.prod.outlook.com ([fe80::a957:f052:5e74:6c02]) by DBBPR08MB4758.eurprd08.prod.outlook.com ([fe80::a957:f052:5e74:6c02%7]) with mapi id 15.20.4065.027; Wed, 28 Apr 2021 14:24:44 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" Subject: [PATCH 9/20] aarch64: Use RTL builtins for v[q]tbx intrinsics Thread-Topic: [PATCH 9/20] aarch64: Use RTL builtins for v[q]tbx intrinsics Thread-Index: AQHXPDn5ouyHEQUro0G4efjIwfCU6Q== Date: Wed, 28 Apr 2021 14:24:44 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [31.48.14.39] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 0adc77c2-e96c-4ca8-f249-08d90a516966 x-ms-traffictypediagnostic: DB6PR0801MB1638:|HE1PR08MB2905: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: roI9Kb5Zsu6q3LZ98TJ5CUwDKM2koSDoB+OuTVQecxPMCFC9fGEggV3Y+t5JoAWrt9mYxD1NSF9BMKgIxsWWr8Np8bubUjbCw6Mv4fbvulPmkMKLwVVIweTp3ehRmGucgBGMWps+K3MZByqssY/meccpih21j3cSvCZqNDe+IO3oQDcR7SoV95zjOh8yUmG0npki3uX4ozuJ2hByps8ba7yHC40El6R3EiOakfb8nX3k/HFZZAHvONLZ/TY989taepJyqguld4/sx410CS6K5fGNm7fHetD1c1H00NfqiYds99WL6rFYhKK67wtI2K+9auii5sq3ZuSLU5BUOpFkrrKoAKRZJrnAEu0poF7A9pviKvCpmR4wOHQjtkQ5sAvGp2WC/DNwkSfy7owKUy9OXTcEUBBIAMjdwLfNy4IaogYZzhjzgiO+E/iTdHKb+04Sa+CpLUdMY5LA26o5GmWnWrDnXIjuFibdTfLdqGUK9BT1VzTQ41zxUbuJHOdhgprUsSBHw9C6JMOL3Lt6atn175cYkg73y/aW1dGGtVLnYBV+ufKnl6TgmF9+yN8YXCGieiTq7tnA5ujK7ijVbzyYEC0bPOjwWJnNLp9lDk3L3KA= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4758.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(396003)(346002)(39840400004)(376002)(55016002)(9686003)(186003)(5660300002)(7696005)(316002)(66556008)(33656002)(122000001)(52536014)(478600001)(26005)(4326008)(8676002)(99936003)(71200400001)(76116006)(6506007)(2906002)(64756008)(66946007)(86362001)(6916009)(4744005)(66616009)(66446008)(38100700002)(66476007)(8936002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?WsJ9e03NagCe4XPwHYs/EO0aRMesIfv6begTPkeq2abfEBfWvdf3pI4hbY?= =?iso-8859-1?Q?ZGKu+6TopFAuBw+S92FoNC+3beL3iBOfyTWZIKPmAIvdWso01SC2C86H7w?= =?iso-8859-1?Q?ZUEHQy6uiWS3rzMPmog8MrdgLKCuKpE6Nsqsq65wjS1x6DyL82EOBOQsbs?= =?iso-8859-1?Q?LScW9+8ds1kyYurTTkPOuKACd3C1zjHN5JOtMWTxcF2DFTANk3rNyrPFy1?= =?iso-8859-1?Q?bZ04JoBN9iLqO8AaVkrUf3W9pJ4V5GoRzmvxLXlUhYhvFTSZXo4fbtTjyB?= =?iso-8859-1?Q?FaX018LjmLK/iQh22awRj/7DKJffe/bBxp4/ekhHEAgk0bEBJDkte4Fn5x?= =?iso-8859-1?Q?F1G/433KXc2L834YFNXyBYVqCsyO2dcLryX1858x8Ye4TbI///Q+t1h+6H?= =?iso-8859-1?Q?5UO/5YoZYcZIaaBDWyLjUQi7d25wINyQCNtQUSh5ib2X2qRqBNtm1XwjXo?= =?iso-8859-1?Q?lG5gHfQjLFGiY1d0GUX2/6JMlo9x47lBCler4RTO6x0iCoO/hRQiXfE0/7?= =?iso-8859-1?Q?dru59luYwgZZInIpCpk+PZnHF4SngTJewc78SCqNKHaAn2wkZfiTiBaKdW?= =?iso-8859-1?Q?tLHyXCI1yH11IEZbwEcDydKORCzNKhOS71MMYvALp1I3AhR4XxbSAswHEz?= =?iso-8859-1?Q?nXx5dzMRvtj1P2oK+eCJ54YQhSzbdUhqf8WI575ynC65jI7vqsiwK0Eoey?= =?iso-8859-1?Q?RQMZNEJH/ucgF95oArN4rRg80zAy7QVO2qCS6EQqaq2++iFH/3rSwi5fHQ?= =?iso-8859-1?Q?gOzKCobjtEgjjf6w3wJ+Lg6vtIPVV7VHruHoDSyDIFFIBZ4LsKFVdgXftj?= =?iso-8859-1?Q?7zqwKJHRCeWg3bhCszqfAaqd8bNBtSaySxGELRG79JWKgmjqknBA0JaY2k?= =?iso-8859-1?Q?xh7AE7aKeKwsw1uMhi/f5nTtEZIOtm9WOVGJO8qTm2SdeTDs/s+sMNnctK?= =?iso-8859-1?Q?lMeBQEdGnnlfym9zJAGzpH74y2CMI43wWJns1HqCTjqGvLU+gLSCr1JdXt?= =?iso-8859-1?Q?LLBQBF0BmGxRZH+4QSngd1tA9Ja+5aLkbVcYLHgQgkOjw+JlOD2LFEUpm+?= =?iso-8859-1?Q?wa6flGF3WfK9E+f/5ZGsSREUy4G1zBIKEvKyQhTvlqkgBsP2rD7UVdzpOT?= =?iso-8859-1?Q?YmW5gRREjLsG9w8txx/K3fbakg02JyyhNHpS0AP69dn4z6PxZQGYz6iMiH?= =?iso-8859-1?Q?w007VddZ/2LNwsp95eUtl5j5HgXeqJQmhtEU2vhWUXvWUpeC3yrj1dXXmb?= =?iso-8859-1?Q?0bYG/PEpgeFR63gnc4w9edgG774zN7ton0fSeK3HoRjri5LcHVFoQilxsa?= =?iso-8859-1?Q?4Ld9fmNz3TkT5RghszlGNTtC40dOoRnoOvpb4S9kOWqdLUc=3D?= Content-Type: multipart/mixed; boundary="_002_DBBPR08MB47585CE30B22CFCC44F73F5CEB409DBBPR08MB4758eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1638 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 02857d07-3712-49fa-0619-08d90a515ed4 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l+4TjENNVoZN94OUQ8i59gKML98f94bcncAnSmKJLJbutRAHC4MhlwoxcZ9OyOEGJzLyQsTQBKF9BBdlplQDrIxz6keVunwvVpbU0wEP1n+dYa3V56bb7P0qmg3wiNmBQeOD6HpmZdgQDmAQ4sYAiDexUVZ6usPQya6JTV4rrci3h9ZxKUZ9mVo7OKff7PksweHVMV+0aSiO/hrIpUEVS3Rf0yIxsCGoYd3cWS0l+lOudobcVBlhePciTTT0sgHgqV7CwXYrLnnsm2GKVrMpI4eF9A8STgFv2MLYosyQbBAOXNfnTA1ST2iJsD/M+MHR2o7nlFgz8KsNKgN9CruwOayk8upLdox8ThKTE+poxhVj9GiHnsHz9kJ+N7m31qlmIrU/bS1jV9/Ksnq7iIzlp+Om3klpc84FN2w2lpYo8f5Q9S3MB+cYMlW0a3wTkq1wojTX6Btb503KBu9GJLSXMAIDc4m5zpZAy3u6AK2UsqRKwYG50mvUADB1an2IpWt6qah/zONidgRsZ82ETOvPL9pVwJaVDkpIiXr6gFiNGhI88GSuzZPXQLdtW7XmkRJvfgJcx+l5vRypPQjACEwUjHwis+JgCQec7VT3XL+M7MRXZi7f5iQfr05mpUxLN/DUEJz91WUG23p3ycpg8BDz4y6v+Wcsv1I3RH96Xlh5F3lty1u7ZU/cTQNzx5ludwqJ X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(136003)(39860400002)(376002)(346002)(36840700001)(46966006)(186003)(336012)(26005)(6916009)(2906002)(82310400003)(99936003)(66616009)(8676002)(81166007)(33656002)(6506007)(70206006)(34020700004)(82740400003)(70586007)(356005)(36860700001)(5660300002)(86362001)(478600001)(52536014)(9686003)(7696005)(4326008)(47076005)(316002)(8936002)(55016002)(235185007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2021 14:25:02.4959 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0adc77c2-e96c-4ca8-f249-08d90a516966 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2905 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Apr 2021 14:25:31 -0000 --_002_DBBPR08MB47585CE30B22CFCC44F73F5CEB409DBBPR08MB4758eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= As subject, this patch rewrites the v[q]tbx Neon intrinsics to use RTL=0A= builtins rather than inline assembly code, allowing for better scheduling= =0A= and optimization.=0A= =0A= Regression tested and bootstrapped on aarch64-none-linux-gnu - no=0A= issues.=0A= =0A= Ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-02-12 =A0Jonathan Wright =A0=0A= =0A= * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin=0A= generator macros.=0A= * config/aarch64/aarch64-simd.md (aarch64_tbx1):=0A= Define.=0A= * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin=0A= instead of inline asm.=0A= (vqtbx1_u8): Likewise.=0A= (vqtbx1_p8): Likewise.=0A= (vqtbx1q_s8): Likewise.=0A= (vqtbx1q_u8): Likewise.=0A= (vqtbx1q_p8): Likewise.=0A= (vtbx2_s8): Likewise.=0A= (vtbx2_u8): Likewise.=0A= (vtbx2_p8): Likewise.=0A= --_002_DBBPR08MB47585CE30B22CFCC44F73F5CEB409DBBPR08MB4758eurp_ Content-Type: application/octet-stream; name="rb14188.patch" Content-Description: rb14188.patch Content-Disposition: attachment; filename="rb14188.patch"; size=6075; creation-date="Wed, 28 Apr 2021 14:24:24 GMT"; modification-date="Wed, 28 Apr 2021 14:24:24 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVm IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKaW5kZXggYTVj ZmI2NzU0NDU2YTFlOGYwZmNhNTdjNjhiMDA5YTUzZTA5Nzg5ZS4uMGY0NGVkODRmZjlkMDhkODA4 YjFiMmRmZTUyOGRiNTIwOGIxMzRmNSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtc2ltZC1idWlsdGlucy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt c2ltZC1idWlsdGlucy5kZWYKQEAgLTcxMCw2ICs3MTAsMTAgQEAKICAgVkFSMSAoQklOT1AsIHF0 Ymw0LCAwLCBOT05FLCB2OHFpKQogICBWQVIxIChCSU5PUCwgcXRibDQsIDAsIE5PTkUsIHYxNnFp KQogCisgIC8qIEltcGxlbWVudGVkIGJ5IGFhcmNoNjRfdGJ4MTxtb2RlPi4gICovCisgIFZBUjIg KFRFUk5PUCwgdGJ4MSwgMCwgTk9ORSwgdjhxaSwgdjE2cWkpCisgIFZBUjIgKFRFUk5PUFUsIHRi eDEsIDAsIE5PTkUsIHY4cWksIHYxNnFpKQorCiAgIC8qIEltcGxlbWVudGVkIGJ5IGFhcmNoNjRf dGJ4NDxtb2RlPi4gICovCiAgIFZBUjEgKFRFUk5PUCwgdGJ4NCwgMCwgTk9ORSwgdjhxaSkKICAg VkFSMSAoVEVSTk9QLCB0Yng0LCAwLCBOT05FLCB2MTZxaSkKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1z aW1kLm1kCmluZGV4IDkzOWMyODFkNTMzMjYxYmI4NGRjNDUxNTg2ZGE3MDc5NTMwMThmYjguLjVm NzAxZGQyNzc1MjkwMTU2NjM0ZWY4YzZmZWNjZWNkMzU5ZTllYzkgMTAwNjQ0Ci0tLSBhL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtc2ltZC5tZApAQCAtNjkwNSw2ICs2OTA1LDE3IEBACiAgIFsoc2V0X2F0dHIgInR5cGUi ICJuZW9uX3RibDE8cT4iKV0KICkKIAorKGRlZmluZV9pbnNuICJhYXJjaDY0X3RieDE8bW9kZT4i CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZCIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCisJ KHVuc3BlYzpWQiBbKG1hdGNoX29wZXJhbmQ6VkIgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQor CQkgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQorCQkg ICAgKG1hdGNoX29wZXJhbmQ6VkIgMyAicmVnaXN0ZXJfb3BlcmFuZCIgInciKV0KKwkJICAgVU5T UEVDX1RCWCkpXQorICAiVEFSR0VUX1NJTUQiCisgICJ0YnhcXHQlMC48VnR5cGU+LCB7JTIuMTZi fSwgJTMuPFZ0eXBlPiIKKyAgWyhzZXRfYXR0ciAidHlwZSIgIm5lb25fdGJsMTxxPiIpXQorKQor CiA7OyBUd28gc291cmNlIHJlZ2lzdGVycy4KIAogKGRlZmluZV9pbnNuICJhYXJjaDY0X3RibDJ2 MTZxaSIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hcm1fbmVvbi5oIGIvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKaW5kZXggNDZmOTE5ZmIyNTRiOThmODg3ZGI0NzQ4ZDNi NDEwYjdkMThlOGE0ZS4uMWM0OGMxNjZiNWI5YWFmMDUyNzYxZjk1MTIxYzI2ODQ1MjIxZGFlOSAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKKysrIGIvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FybV9uZW9uLmgKQEAgLTk2MTcsNzIgKzk2MTcsNDYgQEAgX19leHRlbnNpb25f XyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZxdGJ4MV9zOCAoaW50OHg4 X3QgX19yLCBpbnQ4eDE2X3QgX190YWIsIHVpbnQ4eDhfdCBfX2lkeCkKIHsKLSAgaW50OHg4X3Qg X19yZXN1bHQgPSBfX3I7Ci0gIF9fYXNtX18gKCJ0YnggJTAuOGIseyUxLjE2Yn0sJTIuOGIiCi0g ICAgICAgICAgIDogIit3IihfX3Jlc3VsdCkKLSAgICAgICAgICAgOiAidyIoX190YWIpLCAidyIo X19pZHgpCi0gICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOwotICByZXR1cm4gX19yZXN1 bHQ7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF90YngxdjhxaSAoX19yLCBfX3RhYiwgKGlu dDh4OF90KSBfX2lkeCk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4 eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQogdnF0YngxX3U4ICh1aW50OHg4X3QgX19yLCB1aW50OHgxNl90IF9f dGFiLCB1aW50OHg4X3QgX19pZHgpCiB7Ci0gIHVpbnQ4eDhfdCBfX3Jlc3VsdCA9IF9fcjsKLSAg X19hc21fXyAoInRieCAlMC44Yix7JTEuMTZifSwlMi44YiIKLSAgICAgICAgICAgOiAiK3ciKF9f cmVzdWx0KQotICAgICAgICAgICA6ICJ3IihfX3RhYiksICJ3IihfX2lkeCkKLSAgICAgICAgICAg OiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuIF9fYnVp bHRpbl9hYXJjaDY0X3RieDF2OHFpX3V1dXUgKF9fciwgX190YWIsIF9faWR4KTsKIH0KIAogX19l eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTh4OF90CiBfX2F0dHJpYnV0ZV9fICgoX19h bHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2cXRieDFf cDggKHBvbHk4eDhfdCBfX3IsIHBvbHk4eDE2X3QgX190YWIsIHVpbnQ4eDhfdCBfX2lkeCkKIHsK LSAgcG9seTh4OF90IF9fcmVzdWx0ID0gX19yOwotICBfX2FzbV9fICgidGJ4ICUwLjhiLHslMS4x NmJ9LCUyLjhiIgotICAgICAgICAgICA6ICIrdyIoX19yZXN1bHQpCi0gICAgICAgICAgIDogInci KF9fdGFiKSwgInciKF9faWR4KQotICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsKLSAg cmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gKHBvbHk4eDhfdCkgX19idWlsdGluX2FhcmNoNjRf dGJ4MXY4cWkgKChpbnQ4eDhfdCkgX19yLAorCQkJCQkJIChpbnQ4eDE2X3QpIF9fdGFiLAorCQkJ CQkJIChpbnQ4eDhfdCkgX19pZHgpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu ZSBpbnQ4eDE2X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5s aW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZxdGJ4MXFfczggKGludDh4MTZfdCBfX3IsIGludDh4 MTZfdCBfX3RhYiwgdWludDh4MTZfdCBfX2lkeCkKIHsKLSAgaW50OHgxNl90IF9fcmVzdWx0ID0g X19yOwotICBfX2FzbV9fICgidGJ4ICUwLjE2Yix7JTEuMTZifSwlMi4xNmIiCi0gICAgICAgICAg IDogIit3IihfX3Jlc3VsdCkKLSAgICAgICAgICAgOiAidyIoX190YWIpLCAidyIoX19pZHgpCi0g ICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOwotICByZXR1cm4gX19yZXN1bHQ7CisgIHJl dHVybiBfX2J1aWx0aW5fYWFyY2g2NF90YngxdjE2cWkgKF9fciwgX190YWIsIChpbnQ4eDE2X3Qp IF9faWR4KTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDh4MTZfdAog X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQogdnF0YngxcV91OCAodWludDh4MTZfdCBfX3IsIHVpbnQ4eDE2X3QgX190YWIs IHVpbnQ4eDE2X3QgX19pZHgpCiB7Ci0gIHVpbnQ4eDE2X3QgX19yZXN1bHQgPSBfX3I7Ci0gIF9f YXNtX18gKCJ0YnggJTAuMTZiLHslMS4xNmJ9LCUyLjE2YiIKLSAgICAgICAgICAgOiAiK3ciKF9f cmVzdWx0KQotICAgICAgICAgICA6ICJ3IihfX3RhYiksICJ3IihfX2lkeCkKLSAgICAgICAgICAg OiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuIF9fYnVp bHRpbl9hYXJjaDY0X3RieDF2MTZxaV91dXV1IChfX3IsIF9fdGFiLCBfX2lkeCk7CiB9CiAKIF9f ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDE2X3QKIF9fYXR0cmlidXRlX18gKChf X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZxdGJ4 MXFfcDggKHBvbHk4eDE2X3QgX19yLCBwb2x5OHgxNl90IF9fdGFiLCB1aW50OHgxNl90IF9faWR4 KQogewotICBwb2x5OHgxNl90IF9fcmVzdWx0ID0gX19yOwotICBfX2FzbV9fICgidGJ4ICUwLjE2 Yix7JTEuMTZifSwlMi4xNmIiCi0gICAgICAgICAgIDogIit3IihfX3Jlc3VsdCkKLSAgICAgICAg ICAgOiAidyIoX190YWIpLCAidyIoX19pZHgpCi0gICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMg Ki8pOwotICByZXR1cm4gX19yZXN1bHQ7CisgIHJldHVybiAocG9seTh4MTZfdCkgX19idWlsdGlu X2FhcmNoNjRfdGJ4MXYxNnFpICgoaW50OHgxNl90KSBfX3IsCisJCQkJCQkgICAoaW50OHgxNl90 KSBfX3RhYiwKKwkJCQkJCSAgIChpbnQ4eDE2X3QpIF9faWR4KTsKIH0KIAogLyogVjcgbGVnYWN5 IHRhYmxlIGludHJpbnNpY3MuICAqLwpAQCAtOTg0NiwzOSArOTgyMCwyNiBAQCBfX2V4dGVuc2lv bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdnRieDJfczggKGludDh4 OF90IF9fciwgaW50OHg4eDJfdCBfX3RhYiwgaW50OHg4X3QgX19pZHgpCiB7Ci0gIGludDh4OF90 IF9fcmVzdWx0ID0gX19yOwogICBpbnQ4eDE2X3QgX190ZW1wID0gdmNvbWJpbmVfczggKF9fdGFi LnZhbFswXSwgX190YWIudmFsWzFdKTsKLSAgX19hc21fXyAoInRieCAlMC44YiwgeyUxLjE2Yn0s ICUyLjhiIgotICAgICAgICAgICA6ICIrdyIoX19yZXN1bHQpCi0gICAgICAgICAgIDogInciKF9f dGVtcCksICJ3IihfX2lkeCkKLSAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJl dHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3RieDF2OHFpIChfX3Is IF9fdGVtcCwgX19pZHgpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50 OHg4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKIHZ0YngyX3U4ICh1aW50OHg4X3QgX19yLCB1aW50OHg4eDJfdCBf X3RhYiwgdWludDh4OF90IF9faWR4KQogewotICB1aW50OHg4X3QgX19yZXN1bHQgPSBfX3I7CiAg IHVpbnQ4eDE2X3QgX190ZW1wID0gdmNvbWJpbmVfdTggKF9fdGFiLnZhbFswXSwgX190YWIudmFs WzFdKTsKLSAgX19hc21fXyAoInRieCAlMC44YiwgeyUxLjE2Yn0sICUyLjhiIgotICAgICAgICAg ICA6ICIrdyIoX19yZXN1bHQpCi0gICAgICAgICAgIDogInciKF9fdGVtcCksICJ3IihfX2lkeCkK LSAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAg cmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3RieDF2OHFpX3V1dXUgKF9fciwgX190ZW1wLCBfX2lk eCk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHBvbHk4eDhfdAogX19hdHRy aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQogdnRieDJfcDggKHBvbHk4eDhfdCBfX3IsIHBvbHk4eDh4Ml90IF9fdGFiLCB1aW50OHg4 X3QgX19pZHgpCiB7Ci0gIHBvbHk4eDhfdCBfX3Jlc3VsdCA9IF9fcjsKICAgcG9seTh4MTZfdCBf X3RlbXAgPSB2Y29tYmluZV9wOCAoX190YWIudmFsWzBdLCBfX3RhYi52YWxbMV0pOwotICBfX2Fz bV9fICgidGJ4ICUwLjhiLCB7JTEuMTZifSwgJTIuOGIiCi0gICAgICAgICAgIDogIit3IihfX3Jl c3VsdCkKLSAgICAgICAgICAgOiAidyIoX190ZW1wKSwgInciKF9faWR4KQotICAgICAgICAgICA6 IC8qIE5vIGNsb2JiZXJzICovKTsKLSAgcmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gKHBvbHk4 eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdGJ4MXY4cWkgKChpbnQ4eDhfdCkgX19yLAorCQkJCQkJ IChpbnQ4eDE2X3QpIF9fdGVtcCwKKwkJCQkJCSAoaW50OHg4X3QpIF9faWR4KTsKIH0KIAogLyog RW5kIG9mIHRlbXBvcmFyeSBpbmxpbmUgYXNtLiAgKi8K --_002_DBBPR08MB47585CE30B22CFCC44F73F5CEB409DBBPR08MB4758eurp_--