From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31093 invoked by alias); 8 Nov 2017 12:32:32 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 31066 invoked by uid 89); 8 Nov 2017 12:32:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=H*c:HHH X-HELO: mga07.intel.com Received: from mga07.intel.com (HELO mga07.intel.com) (134.134.136.100) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Nov 2017 12:32:29 +0000 Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP; 08 Nov 2017 04:32:27 -0800 X-ExtLoop1: 1 Received: from irsmsx152.ger.corp.intel.com ([163.33.192.66]) by fmsmga005.fm.intel.com with ESMTP; 08 Nov 2017 04:32:26 -0800 Received: from irsmsx101.ger.corp.intel.com ([169.254.1.22]) by IRSMSX152.ger.corp.intel.com ([169.254.6.87]) with mapi id 14.03.0319.002; Wed, 8 Nov 2017 12:32:25 +0000 From: "Koval, Julia" To: 'GCC Patches' CC: 'Kirill Yukhin' Subject: [PATCH][i386,AVX] Enable VAES support [2/5] Date: Wed, 08 Nov 2017 12:38:00 -0000 Message-ID: <4E89A029A0F8D443B436A5167BA3C53F42ACC66A@IRSMSX101.ger.corp.intel.com> x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiN2VmMTBkMTEtOGVkYi00N2QwLWIxZjItYjRiOTM5NThlZWE3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJpUEJveVBPM2NSdG9paEtoV0FnTXI2QmNrc1VxV2QxMDNqUll4bG9JaGhcL2ZmNnhZaGxOMVpsUDQ3YSt1ZkVFSCJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action Content-Type: multipart/mixed; boundary="_002_4E89A029A0F8D443B436A5167BA3C53F42ACC66AIRSMSX101gercor_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00579.txt.bz2 --_002_4E89A029A0F8D443B436A5167BA3C53F42ACC66AIRSMSX101gercor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1048 Hi, this patch enables VAESDEC instruction from VAES isaset, defined here: = https://software.intel.com/sites/default/files/managed/c5/15/architecture-i= nstruction-set-extensions-programming-reference.pdf Ok for trunk? Thanks, Julia gcc/ * config.gcc: Add vaesintrin.h. * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): New type. * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi, __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): New builtins. * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. * config/i386/immintrin.h: Include vaesintrin.h. * config/i386/sse.md (vaesdec_): New pattern. * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128, _mm_aesdec_epi128): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512-check.h: Handle bit_VAES. * gcc.target/i386/avx512f-aesdec-2.c: New test. * gcc.target/i386/avx512fvl-vaes-1.c: Ditto. * gcc.target/i386/avx512vl-aesdec-2.c: Ditto. * gcc.target/i386/i386.exp (check_effective_target_avx512vaes): New. --_002_4E89A029A0F8D443B436A5167BA3C53F42ACC66AIRSMSX101gercor_ Content-Type: application/octet-stream; name="0002-VAESDEC.PATCH" Content-Description: 0002-VAESDEC.PATCH Content-Disposition: attachment; filename="0002-VAESDEC.PATCH"; size=11551; creation-date="Wed, 08 Nov 2017 12:27:31 GMT"; modification-date="Wed, 08 Nov 2017 12:27:31 GMT" Content-Transfer-Encoding: base64 Content-length: 15661 RnJvbSBmYmU1ODY4MzE3MzBmZmYzNzhjMTMwOWIyNjRkNGQ4MTAxMWMyYzRl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAianVsaWEua292YWwi IDxqa292YWxAZ2t0aWNsZWw4MDEuaWdrLmludGVsLmNvbT4KRGF0ZTogTW9u LCAyNyBGZWIgMjAxNyAyMjo0MjoxMyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg Mi81XSBWQUVTREVDCgotLS0KIGdjYy9jb25maWcuZ2NjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZ2NjL2NvbmZpZy9p Mzg2L2kzODYtYnVpbHRpbi10eXBlcy5kZWYgICAgICAgICAgICB8ICAzICsr CiBnY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRlZiAgICAgICAgICAg ICAgICAgIHwgIDYgKysrCiBnY2MvY29uZmlnL2kzODYvaTM4Ni5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogZ2NjL2NvbmZpZy9pMzg2 L2ltbWludHJpbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICsKIGdj Yy9jb25maWcvaTM4Ni9zc2UubWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAxNiArKysrKysKIGdjYy9jb25maWcvaTM4Ni92YWVzaW50cmluLmgg ICAgICAgICAgICAgICAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysr KysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyLWNo ZWNrLmggICAgICB8ICAzICsrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9hdng1MTJmLWFlc2RlYy0yLmMgIHwgNTIgKysrKysrKysrKysrKysr KysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmZ2 bC12YWVzLTEuYyAgfCAyNCArKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2F2eDUxMnZsLWFlc2RlYy0yLmMgfCAxNyArKysrKysr CiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pMzg2LmV4cCAgICAg ICAgICAgIHwgMTQgKysrKysrCiAxMiBmaWxlcyBjaGFuZ2VkLCAxOTkgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvY29uZmlnL2kzODYvdmFlc2ludHJpbi5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi1h ZXNkZWMtMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvYXZ4NTEyZnZsLXZhZXMtMS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEy dmwtYWVzZGVjLTIuYwoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcuZ2NjIGIv Z2NjL2NvbmZpZy5nY2MKaW5kZXggM2RhY2U4NS4uYzcxOTgyMSAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy5nY2MKKysrIGIvZ2NjL2NvbmZpZy5nY2MKQEAg LTM3OSw3ICszNzksNyBAQCBpWzM0NTY3XTg2LSotKikKIAkJICAgICAgIGF2 eDUxMnZibWl2bGludHJpbi5oIGF2eDUxMjRmbWFwc2ludHJpbi5oIGF2eDUx MjR2bm5pd2ludHJpbi5oCiAJCSAgICAgICBhdng1MTJ2cG9wY250ZHFpbnRy aW4uaCBjbHdiaW50cmluLmggbXdhaXR4aW50cmluLmgKIAkJICAgICAgIGNs emVyb2ludHJpbi5oIHBrdWludHJpbi5oIHNneGludHJpbi5oIGNldGludHJp bi5oCi0JCSAgICAgICBnZm5paW50cmluLmgiCisJCSAgICAgICBnZm5paW50 cmluLmggdmFlc2ludHJpbi5oIgogCTs7CiB4ODZfNjQtKi0qKQogCWNwdV90 eXBlPWkzODYKQEAgLTQwNCw3ICs0MDQsNyBAQCB4ODZfNjQtKi0qKQogCQkg ICAgICAgYXZ4NTEydmJtaXZsaW50cmluLmggYXZ4NTEyNGZtYXBzaW50cmlu LmggYXZ4NTEyNHZubml3aW50cmluLmgKIAkJICAgICAgIGF2eDUxMnZwb3Bj bnRkcWludHJpbi5oIGNsd2JpbnRyaW4uaCBtd2FpdHhpbnRyaW4uaAogCQkg ICAgICAgY2x6ZXJvaW50cmluLmggcGt1aW50cmluLmggc2d4aW50cmluLmgg Y2V0aW50cmluLmgKLQkJICAgICAgIGdmbmlpbnRyaW4uaCIKKwkJICAgICAg IGdmbmlpbnRyaW4uaCB2YWVzaW50cmluLmgiCiAJOzsKIGlhNjQtKi0qKQog CWV4dHJhX2hlYWRlcnM9aWE2NGludHJpbi5oCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2kzODYvaTM4Ni1idWlsdGluLXR5cGVzLmRlZiBiL2djYy9jb25m aWcvaTM4Ni9pMzg2LWJ1aWx0aW4tdHlwZXMuZGVmCmluZGV4IDViM2I5NmUu LjI2NWE3NjIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1 aWx0aW4tdHlwZXMuZGVmCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1 aWx0aW4tdHlwZXMuZGVmCkBAIC0xMjE4LDMgKzEyMTgsNiBAQCBERUZfRlVO Q1RJT05fVFlQRSAoVjY0UUksIFY2NFFJLCBWNjRRSSwgSU5UKQogREVGX0ZV TkNUSU9OX1RZUEUgKFY2NFFJLCBWNjRRSSwgVjY0UUksIElOVCwgVjY0UUks IFVESSkKIERFRl9GVU5DVElPTl9UWVBFIChWMzJRSSwgVjMyUUksIFYzMlFJ LCBJTlQsIFYzMlFJLCBVU0kpCiBERUZfRlVOQ1RJT05fVFlQRSAoVjE2UUks IFYxNlFJLCBWMTZRSSwgSU5ULCBWMTZRSSwgVUhJKQorCisjVkFFUyBidWls dGlucworREVGX0ZVTkNUSU9OX1RZUEUgKFY2NFFJLCBWNjRRSSwgVjY0UUkp CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRl ZiBiL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW4uZGVmCmluZGV4IDNj ZjVlYWUuLjRlNzY5NzAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9p Mzg2LWJ1aWx0aW4uZGVmCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1 aWx0aW4uZGVmCkBAIC0yNTk2LDYgKzI1OTYsMTIgQEAgQkRFU0MgKE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWUE9QQ05URFEsIENPREVfRk9SX3Zwb3Bjb3Vu dHY4ZGlfbWFzaywgIl9fYnVpbHRpbl8KIAogLyogUkRQSUQgKi8KIEJERVND IChPUFRJT05fTUFTS19JU0FfUkRQSUQsIENPREVfRk9SX3JkcGlkLCAiX19i dWlsdGluX2lhMzJfcmRwaWQiLCBJWDg2X0JVSUxUSU5fUkRQSUQsIFVOS05P V04sIChpbnQpIFVOU0lHTkVEX0ZUWVBFX1ZPSUQpCisKKy8qIFZBRVMgKi8K K0JERVNDIChPUFRJT05fTUFTS19JU0FfVkFFUywgQ09ERV9GT1JfdmFlc2Rl Y192MTZxaSwgIl9fYnVpbHRpbl9pYTMyX3ZhZXNkZWNfdjE2cWkiLCBJWDg2 X0JVSUxUSU5fVkFFU0RFQzE2LCBVTktOT1dOLCAoaW50KSBWMTZRSV9GVFlQ RV9WMTZRSV9WMTZRSSkKK0JERVNDIChPUFRJT05fTUFTS19JU0FfVkFFUywg Q09ERV9GT1JfdmFlc2RlY192MzJxaSwgIl9fYnVpbHRpbl9pYTMyX3ZhZXNk ZWNfdjMycWkiLCBJWDg2X0JVSUxUSU5fVkFFU0RFQzMyLCBVTktOT1dOLCAo aW50KSBWMzJRSV9GVFlQRV9WMzJRSV9WMzJRSSkKK0JERVNDIChPUFRJT05f TUFTS19JU0FfVkFFUywgQ09ERV9GT1JfdmFlc2RlY192NjRxaSwgIl9fYnVp bHRpbl9pYTMyX3ZhZXNkZWNfdjY0cWkiLCBJWDg2X0JVSUxUSU5fVkFFU0RF QzY0LCBVTktOT1dOLCAoaW50KSBWNjRRSV9GVFlQRV9WNjRRSV9WNjRRSSkK KwogQkRFU0NfRU5EIChBUkdTMiwgTVBYKQogCiAvKiBCdWlsdGlucyBmb3Ig TVBYLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMg Yi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCmluZGV4IGY4YTkxYmYuLjdiZTYy YjcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2kzODYuYwpAQCAtMzM0NTMsNiArMzM0NTMsNyBA QCBpeDg2X2V4cGFuZF9hcmdzX2J1aWx0aW4gKGNvbnN0IHN0cnVjdCBidWls dGluX2Rlc2NyaXB0aW9uICpkLAogICAgIGNhc2UgVjFESV9GVFlQRV9WMlNJ X1YyU0k6CiAgICAgY2FzZSBWMzJRSV9GVFlQRV9WMTZISV9WMTZISToKICAg ICBjYXNlIFYxNkhJX0ZUWVBFX1Y4U0lfVjhTSToKKyAgICBjYXNlIFY2NFFJ X0ZUWVBFX1Y2NFFJX1Y2NFFJOgogICAgIGNhc2UgVjMyUUlfRlRZUEVfVjMy UUlfVjMyUUk6CiAgICAgY2FzZSBWMTZISV9GVFlQRV9WMzJRSV9WMzJRSToK ICAgICBjYXNlIFYxNkhJX0ZUWVBFX1YxNkhJX1YxNkhJOgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9pMzg2L2ltbWludHJpbi5oIGIvZ2NjL2NvbmZpZy9p Mzg2L2ltbWludHJpbi5oCmluZGV4IDM2NWQyZGIuLmVhZjFkODMgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaAorKysgYi9nY2Mv Y29uZmlnL2kzODYvaW1taW50cmluLmgKQEAgLTk0LDYgKzk0LDggQEAKIAog I2luY2x1ZGUgPGdmbmlpbnRyaW4uaD4KIAorI2luY2x1ZGUgPHZhZXNpbnRy aW4uaD4KKwogI2lmbmRlZiBfX1JEUk5EX18KICNwcmFnbWEgR0NDIHB1c2hf b3B0aW9ucwogI3ByYWdtYSBHQ0MgdGFyZ2V0KCJyZHJuZCIpCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2kzODYvc3NlLm1kIGIvZ2NjL2NvbmZpZy9pMzg2 L3NzZS5tZAppbmRleCAyMDBhYWQ2Li45MDY0MDc1IDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2kzODYvc3NlLm1kCisrKyBiL2djYy9jb25maWcvaTM4Ni9z c2UubWQKQEAgLTE1OCw2ICsxNTgsOSBAQAogCiAgIDs7IEZvciBHRk5JIHN1 cHBvcnQKICAgVU5TUEVDX0dGMlA4QUZGSU5FSU5WCisKKyAgOzsgRm9yIFZB RVMgc3VwcG9ydAorICBVTlNQRUNfVkFFU0RFQwogXSkKIAogKGRlZmluZV9j X2VudW0gInVuc3BlY3YiIFsKQEAgLTM1NCw2ICszNTcsOSBAQAogKGRlZmlu ZV9tb2RlX2l0ZXJhdG9yIFZJMl9BVlg1MTJWTAogICBbKFY4SEkgIlRBUkdF VF9BVlg1MTJWTCIpIChWMTZISSAiVEFSR0VUX0FWWDUxMlZMIikgVjMySEld KQogCisoZGVmaW5lX21vZGVfaXRlcmF0b3IgVkkxX0FWWDUxMlZMX0YKKyAg W1YzMlFJIChWMTZRSSAiVEFSR0VUX0FWWDUxMlZMIikgKFY2NFFJICJUQVJH RVRfQVZYNTEyRiIpXSkKKwogKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZJOF9B VlgyX0FWWDUxMkJXCiAgIFsoVjhESSAiVEFSR0VUX0FWWDUxMkJXIikgKFY0 REkgIlRBUkdFVF9BVlgyIikgVjJESV0pCiAKQEAgLTE5OTkwLDMgKzE5OTk2 LDEzIEBACiAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQogICAg KHNldF9hdHRyICJwcmVmaXgiICJvcmlnLG1heWJlX2V2ZXgsZXZleCIpCiAg ICAoc2V0X2F0dHIgIm1vZGUiICI8c3NlaW5zbm1vZGU+IildKQorCisoZGVm aW5lX2luc24gInZhZXNkZWNfPG1vZGU+IgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWSTFfQVZYNTEyVkxfRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYi KQorCSAgKHVuc3BlYzpWSTFfQVZYNTEyVkxfRgorCSAgWyhtYXRjaF9vcGVy YW5kOlZJMV9BVlg1MTJWTF9GIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikK KwkgICAobWF0Y2hfb3BlcmFuZDpWSTFfQVZYNTEyVkxfRiAyICJ2ZWN0b3Jf b3BlcmFuZCIgInYiKV0KKwkgIFVOU1BFQ19WQUVTREVDKSldCisgICJUQVJH RVRfVkFFUyIKKyAgInZhZXNkZWNcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9 IgorKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L3ZhZXNpbnRyaW4u aCBiL2djYy9jb25maWcvaTM4Ni92YWVzaW50cmluLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDIwOGNjNwotLS0gL2Rldi9udWxs CisrKyBiL2djYy9jb25maWcvaTM4Ni92YWVzaW50cmluLmgKQEAgLTAsMCAr MSw1OSBAQAorI2lmbmRlZiBfX1ZBRVNJTlRSSU5fSF9JTkNMVURFRAorI2Rl ZmluZSBfX1ZBRVNJTlRSSU5fSF9JTkNMVURFRAorCisjaWZuZGVmIF9fVkFF U19fCisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0NDIHRh cmdldCgidmFlcyIpCisjZGVmaW5lIF9fRElTQUJMRV9WQUVTX18KKyNlbmRp ZiAvKiBfX1ZBRVNfXyAqLworCitleHRlcm4gX19pbmxpbmUgX19tMjU2aQor X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW0yNTZfYWVzZGVjX2VwaTEyOCAo X19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQoreworICByZXR1cm4gKF9fbTI1 NmkpX19idWlsdGluX2lhMzJfdmFlc2RlY192MzJxaSAoKF9fdjMycWkpIF9f QSwgKF9fdjMycWkpIF9fQik7Cit9CisKKyNpZmRlZiBfX0RJU0FCTEVfVkFF U19fCisjdW5kZWYgX19ESVNBQkxFX1ZBRVNfXworI3ByYWdtYSBHQ0MgcG9w X29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FCTEVfVkFFU19fICovCisKKwor I2lmICFkZWZpbmVkKF9fVkFFU19fKSB8fCAhZGVmaW5lZChfX0FWWDUxMkYp CisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0NDIHRhcmdl dCgidmFlcyxhdng1MTJmIikKKyNkZWZpbmUgX19ESVNBQkxFX1ZBRVNGX18K KyNlbmRpZiAvKiBfX1ZBRVNfXyAqLworCisKK2V4dGVybiBfX2lubGluZSBf X201MTJpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbTUxMl9hZXNkZWNf ZXBpMTI4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCit7CisgIHJldHVy biAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92YWVzZGVjX3Y2NHFpICgoX192 NjRxaSkgX19BLCAoX192NjRxaSkgX19CKTsKK30KKworI2lmZGVmIF9fRElT QUJMRV9WQUVTRl9fCisjdW5kZWYgX19ESVNBQkxFX1ZBRVNGX18KKyNwcmFn bWEgR0NDIHBvcF9vcHRpb25zCisjZW5kaWYgLyogX19ESVNBQkxFX1ZBRVNf XyAqLworCisjaWYgIWRlZmluZWQoX19WQUVTX18pIHx8ICFkZWZpbmVkKF9f QVZYNTEyVkwpCisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEg R0NDIHRhcmdldCgidmFlcyxhdng1MTJ2bCIpCisjZGVmaW5lIF9fRElTQUJM RV9WQUVTVkxfXworI2VuZGlmIC8qIF9fVkFFU19fICovCisKK2V4dGVybiBf X2lubGluZSBfX20xMjhpCitfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVf XywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9h ZXNkZWNfZXBpMTI4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCit7Cisg IHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92YWVzZGVjX3YxNnFp ICgoX192MTZxaSkgX19BLCAoX192MTZxaSkgX19CKTsKK30KKworI2lmZGVm IF9fRElTQUJMRV9WQUVTVkxfXworI3VuZGVmIF9fRElTQUJMRV9WQUVTVkxf XworI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZiAvKiBfX0RJU0FC TEVfVkFFU19fICovCisjZW5kaWYgLyogX19WQUVTSU5UUklOX0hfSU5DTFVE RUQgKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L2F2eDUxMi1jaGVjay5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvYXZ4NTEyLWNoZWNrLmgKaW5kZXggOTM5MGMxYS4uNTI4ZDA4NyAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEyLWNoZWNrLmgKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4NTEyLWNoZWNrLmgKQEAgLTc4LDYgKzc4LDkgQEAgbWFpbiAoKQog I2lmZGVmIEdGTkkKICAgICAgICYmIChlY3ggJiBiaXRfR0ZOSSkKICNlbmRp ZgorI2lmZGVmIFZBRVMKKyAgICAgICYmIChlY3ggJiBiaXRfVkFFUykKKyNl bmRpZgogICAgICAgJiYgYXZ4NTEyZl9vc19zdXBwb3J0ICgpKQogICAgIHsK ICAgICAgIERPX1RFU1QgKCk7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLWFlc2RlYy0yLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLWFlc2RlYy0yLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM0M2ZiYgotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmYtYWVzZGVjLTIuYwpAQCAtMCwwICsxLDUyIEBACisvKiB7IGRn LWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eDUxMmYg LW12YWVzIiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdl dCBhdng1MTJmIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFy Z2V0IGF2eDUxMnZhZXMgfSAqLworCisjZGVmaW5lIEFWWDUxMkYKKworI2Rl ZmluZSBWQUVTCisjaW5jbHVkZSAiYXZ4NTEyZi1oZWxwZXIuaCIKKworI2Rl ZmluZSBTSVpFIChBVlg1MTJGX0xFTiAvIDMyKQorCisjaW5jbHVkZSAiYXZ4 NTEyZi1tYXNrLXR5cGUuaCIKKworc3RhdGljIHZvaWQKK0NBTEMgKHVuc2ln bmVkIGludCAqcikKK3sKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBTSVpFOyBp Kz00KQorICAgIHsKKyAgICAgIHJbaV0gPSAweGJhMGNkYTk0OworICAgICAg cltpICsgMV0gPSAweDczNjc2YTc7CisgICAgICByW2kgKyAyXSA9IDB4ZDMy MDQ0MjI7CisgICAgICByW2kgKyAzXSA9IDB4NTUwNmVkZDsKKyAgICB9Cit9 CisKK3ZvaWQKK1RFU1QgKHZvaWQpCit7CisgIGludCBpOworICBVTklPTl9U WVBFIChBVlg1MTJGX0xFTiwgaV91ZCkgcmVzMSwgc3JjMSwgc3JjMjsKKyAg TUFTS19UWVBFIG1hc2sgPSBNQVNLX1ZBTFVFOworICB1bnNpZ25lZCBpbnQg cmVzX3JlZltTSVpFXTsKKworICBmb3IgKGludCBpID0gMDsgaSA8IFNJWkU7 IGkrPTQpCisgICAgeworICAgICAgc3JjMS5hW2ldID0gMHg1ZDUzNDc1ZDsK KyAgICAgIHNyYzEuYVtpICsgMV0gPSAweDYzNzQ2ZjcyOworICAgICAgc3Jj MS5hW2kgKyAyXSA9IDB4NzM3NDU2NjU7CisgICAgICBzcmMxLmFbaSArIDNd ID0gMHg3YjViNTQ2NTsKKyAgICAgIHNyYzIuYVtpXSA9IDB4NzI2ZjZlNWQ7 CisgICAgICBzcmMyLmFbaSArIDFdID0gMHg1YjQ3NzU2NTsKKyAgICAgIHNy YzIuYVtpICsgMl0gPSAweDY4NjE3OTI5OworICAgICAgc3JjMi5hW2kgKyAz XSA9IDB4NDg2OTI4NTM7CisgICAgfQorCisgIENBTEMgKHJlc19yZWYpOwor ICByZXMxLnggPSBJTlRSSU5TSUMgKF9hZXNkZWNfZXBpMTI4KSAoc3JjMi54 LCBzcmMxLngpOworCisgIGlmIChVTklPTl9DSEVDSyAoQVZYNTEyRl9MRU4s IGlfdWQpIChyZXMxLCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKK30KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUx MmZ2bC12YWVzLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmZ2bC12YWVzLTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5mYzRlNmJmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZnZsLXZhZXMtMS5jCkBA IC0wLDAgKzEsMjQgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1tdmFlcyAtbWF2eDUxMmYgLW1hdng1MTJ2bCAtTzIi IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi dmFlc2RlY1xbIFxcdFxdK1xbXlx7XG5cXSolem1tXFswLTlcXStcW15cblxy XSolem1tXFswLTlcXStcW15cblxyXSolem1tXFswLTlcXSsoPzpcbnxcWyBc XHRcXSsjKSIgIDEgfSB9ICovCisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyAidmFlc2RlY1xbIFxcdFxdK1xbXlx7XG5cXSoleW1t XFswLTlcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXHtcblxdKiV5bW1c WzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAgMSB9IH0gKi8KKworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2YWVzZGVjXFsgXFx0 XF0rXFteXHtcblxdKiV4bW1cWzAtOVxdK1xbXlx7XG5cXSoleG1tXFswLTlc XStcW15ce1xuXF0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiICAx IH0gfSAqLworCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisKK3ZvbGF0aWxl IF9fbTUxMmkgeCx5Owordm9sYXRpbGUgX19tMjU2aSB4MjU2LCB5MjU2Owor dm9sYXRpbGUgX19tMTI4aSB4MTI4LCB5MTI4OworCit2b2lkIGV4dGVybgor YXZ4NTEyZl90ZXN0ICh2b2lkKQoreworICB4ID0gX21tNTEyX2Flc2RlY19l cGkxMjggKHgsIHkpOworCisgIHgyNTYgPSBfbW0yNTZfYWVzZGVjX2VwaTEy OCAoeDI1NiwgeTI1Nik7CisKKyAgeDEyOCA9IF9tbV9hZXNkZWNfZXBpMTI4 ICh4MTI4LCB5MTI4KTsKKworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtYWVzZGVjLTIuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLWFlc2RlYy0yLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJhNmViMwot LS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L2F2eDUxMnZsLWFlc2RlYy0yLmMKQEAgLTAsMCArMSwxNyBAQAorLyog eyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hdng1 MTJidyAtbWF2eDUxMnZsIC1tdmFlcyIgfSAqLworLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgYXZ4NTEydmwgfSAqLworLyogeyBkZy1yZXF1 aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXZ4NTEyYncgfSAqLworLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXZ4NTEydmFlcyB9ICovCisKKyNk ZWZpbmUgQVZYNTEyVkwKKyNkZWZpbmUgQVZYNTEyRl9MRU4gMjU2CisjZGVm aW5lIEFWWDUxMkZfTEVOX0hBTEYgMTI4CisjaW5jbHVkZSAiYXZ4NTEyZi1h ZXNkZWMtMi5jIgorCisjdW5kZWYgQVZYNTEyRl9MRU4KKyN1bmRlZiBBVlg1 MTJGX0xFTl9IQUxGCisKKyNkZWZpbmUgQVZYNTEyRl9MRU4gMTI4CisjZGVm aW5lIEFWWDUxMkZfTEVOX0hBTEYgMTI4CisjaW5jbHVkZSAiYXZ4NTEyZi1h ZXNkZWMtMi5jIgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvaTM4Ni5leHAgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9pMzg2LmV4cAppbmRleCBiMmJkYmZkLi5mNjZmODZlIDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pMzg2LmV4cAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9pMzg2LmV4cApA QCAtNDM2LDYgKzQzNiwyMCBAQCBwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJn ZXRfZ2ZuaSB7IH0gewogICAgIH0gIi1tZ2ZuaSIgXQogfQogCisjIFJldHVy biAxIGlmIHZhZXMgaW5zdHJ1Y3Rpb25zIGNhbiBiZSBjb21waWxlZC4KK3By b2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hdng1MTJ2YWVzIHsgfSB7Cisg ICAgcmV0dXJuIFtjaGVja19ub19jb21waWxlcl9tZXNzYWdlcyBhdng1MTJ2 YWVzIG9iamVjdCB7CisKKyAgICAgICAgdHlwZWRlZiBpbnQgX192MTZzaSBf X2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICg2NCkpKTsKKworCV9f djMycWkKKwlfbW0yNTZfYWVzZGVjX2VwaTEyOCAoX192MzJxaSBfX0EsIF9f djMycWkgX19CKQorCXsKKwkgIHJldHVybiAoX192MzJxaSlfX2J1aWx0aW5f aWEzMl92YWVzZGVjX3YzMnFpICgoX192MzJxaSkgX19BLCAoX192MzJxaSkg X19CKTsKKwl9CisgICAgfSAiLW12YWVzIiBdCit9CisKICMgSWYgYSB0ZXN0 Y2FzZSBkb2Vzbid0IGhhdmUgc3BlY2lhbCBvcHRpb25zLCB1c2UgdGhlc2Uu CiBnbG9iYWwgREVGQVVMVF9DRkxBR1MKIGlmICFbaW5mbyBleGlzdHMgREVG QVVMVF9DRkxBR1NdIHRoZW4gewotLSAKMi41LjUKCg== --_002_4E89A029A0F8D443B436A5167BA3C53F42ACC66AIRSMSX101gercor_--