From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) by sourceware.org (Postfix) with ESMTPS id 33B393861C5F for ; Thu, 1 Jul 2021 13:07:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 33B393861C5F Received: by mail-qt1-x82b.google.com with SMTP id g12so4030107qtb.2 for ; Thu, 01 Jul 2021 06:07:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hXyEO7vK1F36zeg3imWXkU2rw0jBeBIfZbvSYCLJt/Y=; b=YG3Cg1OAcjFqBFWcBbSzuBRDVtNIC1xUSaS6HM6J0Robs4O1j/R8U9g4KoHoEDh93Q PdzSK6f7x/mfP3T9oIHXfdfDZmWdImHZqGFt2pfXid6Nlpc+WcLSlnLHpo3XMbgUMJll PbQahAMrbC+6KJTnB7Y3lAkumYPyxed35zt2M0KcDkaybPWpwN9Y7Vf8AxNK0SoEBV8K iiQWw6U1FRQ3WM/xSUO2AYGZXIJuLQujW1Q14PeyWb8CNChvnDma44OLPO2JoHr+9TWL LiAJZwbxIaf60PffdqR/BBUp1c+bpipr+Kj46I58GDhlD/FnO6Q/nZ7sqv5ZRcCX/7I3 5YqQ== X-Gm-Message-State: AOAM5330uPNlotPXZ0dgUJJoOsosssOVAc01uHr2g1fJUObYMW67YAWw GSVhM5C7wJMPPSCZd7P/qcMV3WZGn2KU5pPLRHcZnP1r0Ic= X-Google-Smtp-Source: ABdhPJyovUoY/H7TwkNcMO3ZmvYPrelKed+65zSpyXP6ifxrsPKPPzKjvt8FDeTUXNcAt+ieOJAo4gXgDZDugBsYf0k= X-Received: by 2002:ac8:5f83:: with SMTP id j3mr8236165qta.51.1625144840518; Thu, 01 Jul 2021 06:07:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Uros Bizjak Date: Thu, 1 Jul 2021 15:07:08 +0200 Message-ID: Subject: [PATCH] Change the type of predicates to bool. To: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary="000000000000edca3e05c60f842c" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Thu, 01 Jul 2021 13:07:31 -0000 --000000000000edca3e05c60f842c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 30, 2021 at 12:50 PM Richard Biener wrote: > > On Wed, Jun 30, 2021 at 10:47 AM Uros Bizjak via Gcc-patches > wrote: > > > > This RFC patch changes the type of predicates to bool. However, some > > of the targets (e.g. x86) use indirect functions to call the > > predicates, so without the local change, the build fails. Putting the > > patch through CI bots should weed out the problems, but I have no > > infrastructure to do it myself. > > I'd say thanks for the work - note building some cc1 crosses should > catch 99% of the fallout (just configure $target-linux/elf and make all-g= cc) Thanks for the hint, I have tested the patch on arm-eabi, {x86_64, i386, aarch64, mips, m68k, h8300}-elf and {ppc64le, hppa, s390, ia64, riscv, sh, sparc}-linux. The fallout, fixed by the attached v1 patch, was surprisingly small, so I hope there remains no (otherwise easily fixable) build errors. 2021-07-01 Uro=C5=A1 Bizjak gcc/ * genpreds.c (write_predicate_subfunction): Change the type of written subfunction to bool. (write_one_predicate_function): Change the type of written function to bool. (write_tm_preds_h): Ditto. * recog.h (*insn_operand_predicate_fn): Change the type to bool. * recog.c (general_operand): Change the type to bool. (address_operand): Ditto. (register_operand): Ditto. (pmode_register_operand): Ditto. (scratch_operand): Ditto. (immediate_operand): Ditto. (const_int_operand): Ditto. (const_scalar_int_operand): Ditto. (const_double_operand): Ditto. (nonimmediate_operand): Ditto. (nonmemory_operand): Ditto. (push_operand): Ditto. (pop_operand): Ditto. (memory_operand): Ditto. (indirect_operand): Ditto. (ordered_comparison_operator): Ditto. (comparison_operator): Ditto. * config/i386/i386-expand.c (ix86_expand_sse_cmp): Change the type of indirect predicate function to bool. * config/rs6000/rs6000.c (easy_vector_constant): Change the type to bool. * config/mips/mips-protos.h (m16_based_address_p): Change the type of operand 3 to bool. OK for the trunk? Uros. --000000000000edca3e05c60f842c Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kqkx9mlh0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWV4cGFuZC5jIGIvZ2NjL2NvbmZpZy9p Mzg2L2kzODYtZXhwYW5kLmMKaW5kZXggZTk3NjNlYjViM2UuLjc2ZDZhZmQ2ZDlkIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1leHBhbmQuYworKysgYi9nY2MvY29uZmlnL2kzODYv aTM4Ni1leHBhbmQuYwpAQCAtMzU3MSw3ICszNTcxLDcgQEAgaXg4Nl9leHBhbmRfc3NlX2NtcCAo cnR4IGRlc3QsIGVudW0gcnR4X2NvZGUgY29kZSwgcnR4IGNtcF9vcDAsIHJ0eCBjbXBfb3AxLAog CiAgIGNtcF9vcDAgPSBmb3JjZV9yZWcgKGNtcF9vcHNfbW9kZSwgY21wX29wMCk7CiAKLSAgaW50 ICgqb3AxX3ByZWRpY2F0ZSkocnR4LCBtYWNoaW5lX21vZGUpCisgIGJvb2wgKCpvcDFfcHJlZGlj YXRlKShydHgsIG1hY2hpbmVfbW9kZSkKICAgICA9IFZFQ1RPUl9NT0RFX1AgKGNtcF9vcHNfbW9k ZSkgPyB2ZWN0b3Jfb3BlcmFuZCA6IG5vbmltbWVkaWF0ZV9vcGVyYW5kOwogCiAgIGlmICghb3Ax X3ByZWRpY2F0ZSAoY21wX29wMSwgY21wX29wc19tb2RlKSkKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvbWlwcy9taXBzLXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9taXBzL21pcHMtcHJvdG9zLmgKaW5k ZXggMmNmNGVkNTAyOTIuLjUxYjgyYjE0NThkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL21pcHMv bWlwcy1wcm90b3MuaAorKysgYi9nY2MvY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaApAQCAtMzY2 LDcgKzM2Niw3IEBAIGV4dGVybiBib29sIHVtaXBzXzEyYml0X29mZnNldF9hZGRyZXNzX3AgKHJ0 eCwgbWFjaGluZV9tb2RlKTsKIGV4dGVybiBib29sIG1pcHNfOWJpdF9vZmZzZXRfYWRkcmVzc19w IChydHgsIG1hY2hpbmVfbW9kZSk7CiBleHRlcm4gYm9vbCBsd3NwX3N3c3BfYWRkcmVzc19wIChy dHgsIG1hY2hpbmVfbW9kZSk7CiBleHRlcm4gYm9vbCBtMTZfYmFzZWRfYWRkcmVzc19wIChydHgs IG1hY2hpbmVfbW9kZSwKLQkJCSAgICAgICAgIGludCAoKikocnR4X2RlZiosIG1hY2hpbmVfbW9k ZSkpOyAKKwkJCQkgYm9vbCAoKikocnR4X2RlZiosIG1hY2hpbmVfbW9kZSkpOwogZXh0ZXJuIHJ0 eCBtaXBzX2V4cGFuZF90aHJlYWRfcG9pbnRlciAocnR4KTsKIGV4dGVybiB2b2lkIG1pcHMxNl9l eHBhbmRfZ2V0X2Zjc3IgKHJ0eCk7CiBleHRlcm4gdm9pZCBtaXBzMTZfZXhwYW5kX3NldF9mY3Ny IChydHgpOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMgYi9nY2MvY29u ZmlnL3JzNjAwMC9yczYwMDAuYwppbmRleCAwNzVjMTU2YWUxMy4uZjNlNWY5NWI4ZDQgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCisrKyBiL2djYy9jb25maWcvcnM2MDAw L3JzNjAwMC5jCkBAIC0xMTQ2LDcgKzExNDYsNyBAQCBzdGF0aWMgYm9vbCBzZXRfdG9fbG9hZF9h Z2VuIChydHhfaW5zbiAqLHJ0eF9pbnNuICopOwogc3RhdGljIGJvb2wgaW5zbl90ZXJtaW5hdGVz X2dyb3VwX3AgKHJ0eF9pbnNuICosIGVudW0gZ3JvdXBfdGVybWluYXRpb24pOwogc3RhdGljIGJv b2wgaW5zbl9tdXN0X2JlX2ZpcnN0X2luX2dyb3VwIChydHhfaW5zbiAqKTsKIHN0YXRpYyBib29s IGluc25fbXVzdF9iZV9sYXN0X2luX2dyb3VwIChydHhfaW5zbiAqKTsKLWludCBlYXN5X3ZlY3Rv cl9jb25zdGFudCAocnR4LCBtYWNoaW5lX21vZGUpOworYm9vbCBlYXN5X3ZlY3Rvcl9jb25zdGFu dCAocnR4LCBtYWNoaW5lX21vZGUpOwogc3RhdGljIHJ0eCByczYwMDBfZGVidWdfbGVnaXRpbWl6 ZV9hZGRyZXNzIChydHgsIHJ0eCwgbWFjaGluZV9tb2RlKTsKIHN0YXRpYyBydHggcnM2MDAwX2xl Z2l0aW1pemVfdGxzX2FkZHJlc3MgKHJ0eCwgZW51bSB0bHNfbW9kZWwpOwogI2lmIFRBUkdFVF9N QUNITwpkaWZmIC0tZ2l0IGEvZ2NjL2dlbnByZWRzLmMgYi9nY2MvZ2VucHJlZHMuYwppbmRleCA2 M2ZhYzBjN2QzNC4uOWQ5NzE1ZjNkMmYgMTAwNjQ0Ci0tLSBhL2djYy9nZW5wcmVkcy5jCisrKyBi L2djYy9nZW5wcmVkcy5jCkBAIC0xMTAsNyArMTEwLDcgQEAgcHJvY2Vzc19kZWZpbmVfcHJlZGlj YXRlIChtZF9ydHhfaW5mbyAqaW5mbykKIAogICAgYmVjb21lcwogCi0gICAgICAgc3RhdGljIGlu bGluZSBpbnQgYmFzZXJlZ19vcGVyYW5kXzEocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKKyAg ICAgICBzdGF0aWMgaW5saW5lIGJvb2wgYmFzZXJlZ19vcGVyYW5kXzEocnR4IG9wLCBtYWNoaW5l X21vZGUgbW9kZSkKICAgICAgICB7CiAgICAgICAgICBpZiAoR0VUX0NPREUgKG9wKSA9PSBTVUJS RUcpCiAgICAgICAgICAgIG9wID0gU1VCUkVHX1JFRyAob3ApOwpAQCAtMTUxLDcgKzE1MSw3IEBA IHdyaXRlX3ByZWRpY2F0ZV9zdWJmdW5jdGlvbiAoc3RydWN0IHByZWRfZGF0YSAqcCkKIAogICBw LT5leHAgPSBhbmRfZXhwOwogCi0gIHByaW50ZiAoInN0YXRpYyBpbmxpbmUgaW50XG4iCisgIHBy aW50ZiAoInN0YXRpYyBpbmxpbmUgYm9vbFxuIgogCSAgIiVzXzEgKHJ0eCBvcCBBVFRSSUJVVEVf VU5VU0VELCBtYWNoaW5lX21vZGUgbW9kZSBBVFRSSUJVVEVfVU5VU0VEKVxuIiwKIAkgIHAtPm5h bWUpOwogICBydHhfcmVhZGVyX3B0ci0+cHJpbnRfbWRfcHRyX2xvYyAocC0+Y19ibG9jayk7CkBA IC02NTEsNyArNjUxLDcgQEAgd3JpdGVfb25lX3ByZWRpY2F0ZV9mdW5jdGlvbiAoc3RydWN0IHBy ZWRfZGF0YSAqcCkKIAogICAvKiBBIG5vcm1hbCBwcmVkaWNhdGUgY2FuIGxlZ2l0aW1hdGVseSBu b3QgbG9vayBhdCBtYWNoaW5lX21vZGUKICAgICAgaWYgaXQgYWNjZXB0cyBvbmx5IENPTlNUX0lO VHMgYW5kL29yIENPTlNUX1dJREVfSU5UIGFuZC9vciBDT05TVF9ET1VCTEVzLiAgKi8KLSAgcHJp bnRmICgiaW50XG4lcyAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSBBVFRSSUJVVEVfVU5VU0VE KVxue1xuIiwKKyAgcHJpbnRmICgiYm9vbFxuJXMgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1vZGUg QVRUUklCVVRFX1VOVVNFRClcbntcbiIsCiAJICBwLT5uYW1lKTsKICAgd3JpdGVfcHJlZGljYXRl X3N0bXRzIChwLT5leHApOwogICBmcHV0cyAoIn1cblxuIiwgc3Rkb3V0KTsKQEAgLTE0MTYsNyAr MTQxNiw3IEBAIHdyaXRlX3RtX3ByZWRzX2ggKHZvaWQpCiAjaWZkZWYgSEFWRV9NQUNISU5FX01P REVTIik7CiAKICAgRk9SX0FMTF9QUkVESUNBVEVTIChwKQotICAgIHByaW50ZiAoImV4dGVybiBp bnQgJXMgKHJ0eCwgbWFjaGluZV9tb2RlKTtcbiIsIHAtPm5hbWUpOworICAgIHByaW50ZiAoImV4 dGVybiBib29sICVzIChydHgsIG1hY2hpbmVfbW9kZSk7XG4iLCBwLT5uYW1lKTsKIAogICBwdXRz ICgiI2VuZGlmIC8qIEhBVkVfTUFDSElORV9NT0RFUyAqL1xuIik7CiAKZGlmZiAtLWdpdCBhL2dj Yy9yZWNvZy5jIGIvZ2NjL3JlY29nLmMKaW5kZXggZWI2MTdmMTExNjMuLjlkODgwNDMzZTZmIDEw MDY0NAotLS0gYS9nY2MvcmVjb2cuYworKysgYi9nY2MvcmVjb2cuYwpAQCAtMTM5Myw3ICsxMzkz LDcgQEAgdmFsaWRfaW5zbl9wIChydHhfaW5zbiAqaW5zbikKICAgcmV0dXJuIHRydWU7CiB9CiAK LS8qIFJldHVybiAxIGlmIE9QIGlzIGEgdmFsaWQgZ2VuZXJhbCBvcGVyYW5kIGZvciBtYWNoaW5l IG1vZGUgTU9ERS4KKy8qIFJldHVybiB0cnVlIGlmIE9QIGlzIGEgdmFsaWQgZ2VuZXJhbCBvcGVy YW5kIGZvciBtYWNoaW5lIG1vZGUgTU9ERS4KICAgIFRoaXMgaXMgZWl0aGVyIGEgcmVnaXN0ZXIg cmVmZXJlbmNlLCBhIG1lbW9yeSByZWZlcmVuY2UsCiAgICBvciBhIGNvbnN0YW50LiAgSW4gdGhl IGNhc2Ugb2YgYSBtZW1vcnkgcmVmZXJlbmNlLCB0aGUgYWRkcmVzcwogICAgaXMgY2hlY2tlZCBm b3IgZ2VuZXJhbCB2YWxpZGl0eSBmb3IgdGhlIHRhcmdldCBtYWNoaW5lLgpAQCAtMTQwNyw3ICsx NDA3LDcgQEAgdmFsaWRfaW5zbl9wIChydHhfaW5zbiAqaW5zbikKICAgIFRoZSBtYWluIHVzZSBv ZiB0aGlzIGZ1bmN0aW9uIGlzIGFzIGEgcHJlZGljYXRlIGluIG1hdGNoX29wZXJhbmQKICAgIGV4 cHJlc3Npb25zIGluIHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uLiAgKi8KIAotaW50Citib29sCiBn ZW5lcmFsX29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1vZGUpCiB7CiAgIGVudW0gcnR4 X2NvZGUgY29kZSA9IEdFVF9DT0RFIChvcCk7CkBAIC0xNTE1LDEzICsxNTE1LDEzIEBAIGdlbmVy YWxfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKICAgcmV0dXJuIDA7CiB9CiAM Ci0vKiBSZXR1cm4gMSBpZiBPUCBpcyBhIHZhbGlkIG1lbW9yeSBhZGRyZXNzIGZvciBhIG1lbW9y eSByZWZlcmVuY2UKKy8qIFJldHVybiB0cnVlIGlmIE9QIGlzIGEgdmFsaWQgbWVtb3J5IGFkZHJl c3MgZm9yIGEgbWVtb3J5IHJlZmVyZW5jZQogICAgb2YgbW9kZSBNT0RFLgogCiAgICBUaGUgbWFp biB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyBhcyBhIHByZWRpY2F0ZSBpbiBtYXRjaF9vcGVyYW5k CiAgICBleHByZXNzaW9ucyBpbiB0aGUgbWFjaGluZSBkZXNjcmlwdGlvbi4gICovCiAKLWludAor Ym9vbAogYWRkcmVzc19vcGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogewogICAv KiBXcm9uZyBtb2RlIGZvciBhbiBhZGRyZXNzIGV4cHIuICAqLwpAQCAtMTUzMiwxMyArMTUzMiwx MyBAQCBhZGRyZXNzX29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1vZGUpCiAgIHJldHVy biBtZW1vcnlfYWRkcmVzc19wIChtb2RlLCBvcCk7CiB9CiAKLS8qIFJldHVybiAxIGlmIE9QIGlz IGEgcmVnaXN0ZXIgcmVmZXJlbmNlIG9mIG1vZGUgTU9ERS4KKy8qIFJldHVybiB0cnVlIGlmIE9Q IGlzIGEgcmVnaXN0ZXIgcmVmZXJlbmNlIG9mIG1vZGUgTU9ERS4KICAgIElmIE1PREUgaXMgVk9J RG1vZGUsIGFjY2VwdCBhIHJlZ2lzdGVyIGluIGFueSBtb2RlLgogCiAgICBUaGUgbWFpbiB1c2Ug b2YgdGhpcyBmdW5jdGlvbiBpcyBhcyBhIHByZWRpY2F0ZSBpbiBtYXRjaF9vcGVyYW5kCiAgICBl eHByZXNzaW9ucyBpbiB0aGUgbWFjaGluZSBkZXNjcmlwdGlvbi4gICovCiAKLWludAorYm9vbAog cmVnaXN0ZXJfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgaWYgKEdF VF9DT0RFIChvcCkgPT0gU1VCUkVHKQpAQCAtMTU1OSwxOCArMTU1OSwxOCBAQCByZWdpc3Rlcl9v cGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogICByZXR1cm4gZ2VuZXJhbF9vcGVy YW5kIChvcCwgbW9kZSk7CiB9CiAKLS8qIFJldHVybiAxIGZvciBhIHJlZ2lzdGVyIGluIFBtb2Rl OyBpZ25vcmUgdGhlIHRlc3RlZCBtb2RlLiAgKi8KKy8qIFJldHVybiB0cnVlIGZvciBhIHJlZ2lz dGVyIGluIFBtb2RlOyBpZ25vcmUgdGhlIHRlc3RlZCBtb2RlLiAgKi8KIAotaW50Citib29sCiBw bW9kZV9yZWdpc3Rlcl9vcGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlIEFUVFJJQlVU RV9VTlVTRUQpCiB7CiAgIHJldHVybiByZWdpc3Rlcl9vcGVyYW5kIChvcCwgUG1vZGUpOwogfQog Ci0vKiBSZXR1cm4gMSBpZiBPUCBzaG91bGQgbWF0Y2ggYSBNQVRDSF9TQ1JBVENILCBpLmUuLCBp ZiBpdCBpcyBhIFNDUkFUQ0gKKy8qIFJldHVybiB0cnVlIGlmIE9QIHNob3VsZCBtYXRjaCBhIE1B VENIX1NDUkFUQ0gsIGkuZS4sIGlmIGl0IGlzIGEgU0NSQVRDSAogICAgb3IgYSBoYXJkIHJlZ2lz dGVyLiAgKi8KIAotaW50Citib29sCiBzY3JhdGNoX29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9t b2RlIG1vZGUpCiB7CiAgIGlmIChHRVRfTU9ERSAob3ApICE9IG1vZGUgJiYgbW9kZSAhPSBWT0lE bW9kZSkKQEAgLTE1ODMsMTIgKzE1ODMsMTIgQEAgc2NyYXRjaF9vcGVyYW5kIChydHggb3AsIG1h Y2hpbmVfbW9kZSBtb2RlKQogCQkgICAgICAmJiBSRUdOT19SRUdfQ0xBU1MgKFJFR05PIChvcCkp ICE9IE5PX1JFR1MpKSkpOwogfQogCi0vKiBSZXR1cm4gMSBpZiBPUCBpcyBhIHZhbGlkIGltbWVk aWF0ZSBvcGVyYW5kIGZvciBtb2RlIE1PREUuCisvKiBSZXR1cm4gdHJ1ZSBpZiBPUCBpcyBhIHZh bGlkIGltbWVkaWF0ZSBvcGVyYW5kIGZvciBtb2RlIE1PREUuCiAKICAgIFRoZSBtYWluIHVzZSBv ZiB0aGlzIGZ1bmN0aW9uIGlzIGFzIGEgcHJlZGljYXRlIGluIG1hdGNoX29wZXJhbmQKICAgIGV4 cHJlc3Npb25zIGluIHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uLiAgKi8KIAotaW50Citib29sCiBp bW1lZGlhdGVfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgLyogRG9u J3QgYWNjZXB0IENPTlNUX0lOVCBvciBhbnl0aGluZyBzaW1pbGFyCkBAIC0xNjEyLDkgKzE2MTIs OSBAQCBpbW1lZGlhdGVfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIAkJCQkJ ICAgIDogbW9kZSwgb3ApKTsKIH0KIAotLyogUmV0dXJucyAxIGlmIE9QIGlzIGFuIG9wZXJhbmQg dGhhdCBpcyBhIENPTlNUX0lOVCBvZiBtb2RlIE1PREUuICAqLworLyogUmV0dXJuIHRydWUgaWYg T1AgaXMgYW4gb3BlcmFuZCB0aGF0IGlzIGEgQ09OU1RfSU5UIG9mIG1vZGUgTU9ERS4gICovCiAK LWludAorYm9vbAogY29uc3RfaW50X29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1vZGUp CiB7CiAgIGlmICghQ09OU1RfSU5UX1AgKG9wKSkKQEAgLTE2MjgsOSArMTYyOCw5IEBAIGNvbnN0 X2ludF9vcGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogfQogCiAjaWYgVEFSR0VU X1NVUFBPUlRTX1dJREVfSU5UCi0vKiBSZXR1cm5zIDEgaWYgT1AgaXMgYW4gb3BlcmFuZCB0aGF0 IGlzIGEgQ09OU1RfSU5UIG9yIENPTlNUX1dJREVfSU5UCisvKiBSZXR1cm4gdHJ1ZSBpZiBPUCBp cyBhbiBvcGVyYW5kIHRoYXQgaXMgYSBDT05TVF9JTlQgb3IgQ09OU1RfV0lERV9JTlQKICAgIG9m IG1vZGUgTU9ERS4gICovCi1pbnQKK2Jvb2wKIGNvbnN0X3NjYWxhcl9pbnRfb3BlcmFuZCAocnR4 IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgaWYgKCFDT05TVF9TQ0FMQVJfSU5UX1AgKG9w KSkKQEAgLTE2NjEsMjAgKzE2NjEsMjAgQEAgY29uc3Rfc2NhbGFyX2ludF9vcGVyYW5kIChydHgg b3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogICByZXR1cm4gMTsKIH0KIAotLyogUmV0dXJucyAxIGlm IE9QIGlzIGFuIG9wZXJhbmQgdGhhdCBpcyBhIGNvbnN0YW50IGludGVnZXIgb3IgY29uc3RhbnQK Ky8qIFJldHVybiB0cnVlIGlmIE9QIGlzIGFuIG9wZXJhbmQgdGhhdCBpcyBhIGNvbnN0YW50IGlu dGVnZXIgb3IgY29uc3RhbnQKICAgIGZsb2F0aW5nLXBvaW50IG51bWJlciBvZiBNT0RFLiAgKi8K IAotaW50Citib29sCiBjb25zdF9kb3VibGVfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUg bW9kZSkKIHsKICAgcmV0dXJuIChHRVRfQ09ERSAob3ApID09IENPTlNUX0RPVUJMRSkKIAkgICYm IChHRVRfTU9ERSAob3ApID09IG1vZGUgfHwgbW9kZSA9PSBWT0lEbW9kZSk7CiB9CiAjZWxzZQot LyogUmV0dXJucyAxIGlmIE9QIGlzIGFuIG9wZXJhbmQgdGhhdCBpcyBhIGNvbnN0YW50IGludGVn ZXIgb3IgY29uc3RhbnQKKy8qIFJldHVybiB0cnVlIGlmIE9QIGlzIGFuIG9wZXJhbmQgdGhhdCBp cyBhIGNvbnN0YW50IGludGVnZXIgb3IgY29uc3RhbnQKICAgIGZsb2F0aW5nLXBvaW50IG51bWJl ciBvZiBNT0RFLiAgKi8KIAotaW50Citib29sCiBjb25zdF9kb3VibGVfb3BlcmFuZCAocnR4IG9w LCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgLyogRG9uJ3QgYWNjZXB0IENPTlNUX0lOVCBvciBh bnl0aGluZyBzaW1pbGFyCkBAIC0xNjg5LDE4ICsxNjg5LDE5IEBAIGNvbnN0X2RvdWJsZV9vcGVy YW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogCSAgICAgIHx8IEdFVF9NT0RFIChvcCkg PT0gVk9JRG1vZGUpKTsKIH0KICNlbmRpZgotLyogUmV0dXJuIDEgaWYgT1AgaXMgYSBnZW5lcmFs IG9wZXJhbmQgdGhhdCBpcyBub3QgYW4gaW1tZWRpYXRlCisvKiBSZXR1cm4gdHJ1ZSBpZiBPUCBp cyBhIGdlbmVyYWwgb3BlcmFuZCB0aGF0IGlzIG5vdCBhbiBpbW1lZGlhdGUKICAgIG9wZXJhbmQg b2YgbW9kZSBNT0RFLiAgKi8KIAotaW50Citib29sCiBub25pbW1lZGlhdGVfb3BlcmFuZCAocnR4 IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgcmV0dXJuIChnZW5lcmFsX29wZXJhbmQgKG9w LCBtb2RlKSAmJiAhIENPTlNUQU5UX1AgKG9wKSk7CiB9CiAKLS8qIFJldHVybiAxIGlmIE9QIGlz IGEgcmVnaXN0ZXIgcmVmZXJlbmNlIG9yIGltbWVkaWF0ZSB2YWx1ZSBvZiBtb2RlIE1PREUuICAq LworLyogUmV0dXJuIHRydWUgaWYgT1AgaXMgYSByZWdpc3RlciByZWZlcmVuY2Ugb3IKKyAgIGlt bWVkaWF0ZSB2YWx1ZSBvZiBtb2RlIE1PREUuICAqLwogCi1pbnQKK2Jvb2wKIG5vbm1lbW9yeV9v cGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogewogICBpZiAoQ09OU1RBTlRfUCAo b3ApKQpAQCAtMTcwOCwxMyArMTcwOSwxMyBAQCBub25tZW1vcnlfb3BlcmFuZCAocnR4IG9wLCBt YWNoaW5lX21vZGUgbW9kZSkKICAgcmV0dXJuIHJlZ2lzdGVyX29wZXJhbmQgKG9wLCBtb2RlKTsK IH0KIAotLyogUmV0dXJuIDEgaWYgT1AgaXMgYSB2YWxpZCBvcGVyYW5kIHRoYXQgc3RhbmRzIGZv ciBwdXNoaW5nIGEKKy8qIFJldHVybiB0cnVlIGlmIE9QIGlzIGEgdmFsaWQgb3BlcmFuZCB0aGF0 IHN0YW5kcyBmb3IgcHVzaGluZyBhCiAgICB2YWx1ZSBvZiBtb2RlIE1PREUgb250byB0aGUgc3Rh Y2suCiAKICAgIFRoZSBtYWluIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIGFzIGEgcHJlZGljYXRl IGluIG1hdGNoX29wZXJhbmQKICAgIGV4cHJlc3Npb25zIGluIHRoZSBtYWNoaW5lIGRlc2NyaXB0 aW9uLiAgKi8KIAotaW50Citib29sCiBwdXNoX29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9tb2Rl IG1vZGUpCiB7CiAgIGlmICghTUVNX1AgKG9wKSkKQEAgLTE3NTIsMTMgKzE3NTMsMTMgQEAgcHVz aF9vcGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogICByZXR1cm4gWEVYUCAob3As IDApID09IHN0YWNrX3BvaW50ZXJfcnR4OwogfQogCi0vKiBSZXR1cm4gMSBpZiBPUCBpcyBhIHZh bGlkIG9wZXJhbmQgdGhhdCBzdGFuZHMgZm9yIHBvcHBpbmcgYQorLyogUmV0dXJuIHRydWUgaWYg T1AgaXMgYSB2YWxpZCBvcGVyYW5kIHRoYXQgc3RhbmRzIGZvciBwb3BwaW5nIGEKICAgIHZhbHVl IG9mIG1vZGUgTU9ERSBvZmYgdGhlIHN0YWNrLgogCiAgICBUaGUgbWFpbiB1c2Ugb2YgdGhpcyBm dW5jdGlvbiBpcyBhcyBhIHByZWRpY2F0ZSBpbiBtYXRjaF9vcGVyYW5kCiAgICBleHByZXNzaW9u cyBpbiB0aGUgbWFjaGluZSBkZXNjcmlwdGlvbi4gICovCiAKLWludAorYm9vbAogcG9wX29wZXJh bmQgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1vZGUpCiB7CiAgIGlmICghTUVNX1AgKG9wKSkKQEAg LTE3OTQsMTMgKzE3OTUsMTMgQEAgbWVtb3J5X2FkZHJlc3NfYWRkcl9zcGFjZV9wIChtYWNoaW5l X21vZGUgbW9kZSBBVFRSSUJVVEVfVU5VU0VELAogI2VuZGlmCiB9CiAKLS8qIFJldHVybiAxIGlm IE9QIGlzIGEgdmFsaWQgbWVtb3J5IHJlZmVyZW5jZSB3aXRoIG1vZGUgTU9ERSwKKy8qIFJldHVy biB0cnVlIGlmIE9QIGlzIGEgdmFsaWQgbWVtb3J5IHJlZmVyZW5jZSB3aXRoIG1vZGUgTU9ERSwK ICAgIGluY2x1ZGluZyBhIHZhbGlkIGFkZHJlc3MuCiAKICAgIFRoZSBtYWluIHVzZSBvZiB0aGlz IGZ1bmN0aW9uIGlzIGFzIGEgcHJlZGljYXRlIGluIG1hdGNoX29wZXJhbmQKICAgIGV4cHJlc3Np b25zIGluIHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uLiAgKi8KIAotaW50Citib29sCiBtZW1vcnlf b3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUgbW9kZSkKIHsKICAgcnR4IGlubmVyOwpAQCAt MTgyMCwxMCArMTgyMSwxMCBAQCBtZW1vcnlfb3BlcmFuZCAocnR4IG9wLCBtYWNoaW5lX21vZGUg bW9kZSkKICAgcmV0dXJuIChNRU1fUCAoaW5uZXIpICYmIGdlbmVyYWxfb3BlcmFuZCAob3AsIG1v ZGUpKTsKIH0KIAotLyogUmV0dXJuIDEgaWYgT1AgaXMgYSB2YWxpZCBpbmRpcmVjdCBtZW1vcnkg cmVmZXJlbmNlIHdpdGggbW9kZSBNT0RFOworLyogUmV0dXJuIHRydWUgaWYgT1AgaXMgYSB2YWxp ZCBpbmRpcmVjdCBtZW1vcnkgcmVmZXJlbmNlIHdpdGggbW9kZSBNT0RFOwogICAgdGhhdCBpcywg YSBtZW1vcnkgcmVmZXJlbmNlIHdob3NlIGFkZHJlc3MgaXMgYSBnZW5lcmFsX29wZXJhbmQuICAq LwogCi1pbnQKK2Jvb2wKIGluZGlyZWN0X29wZXJhbmQgKHJ0eCBvcCwgbWFjaGluZV9tb2RlIG1v ZGUpCiB7CiAgIC8qIEJlZm9yZSByZWxvYWQsIGEgU1VCUkVHIGlzbid0IGluIG1lbW9yeSAoc2Vl IG1lbW9yeV9vcGVyYW5kLCBhYm92ZSkuICAqLwpAQCAtMTg0OCwxMCArMTg0OSwxMCBAQCBpbmRp cmVjdF9vcGVyYW5kIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogCSAgJiYgZ2VuZXJhbF9v cGVyYW5kIChYRVhQIChvcCwgMCksIFBtb2RlKSk7CiB9CiAKLS8qIFJldHVybiAxIGlmIHRoaXMg aXMgYW4gb3JkZXJlZCBjb21wYXJpc29uIG9wZXJhdG9yIChub3QgaW5jbHVkaW5nCisvKiBSZXR1 cm4gdHJ1ZSBpZiB0aGlzIGlzIGFuIG9yZGVyZWQgY29tcGFyaXNvbiBvcGVyYXRvciAobm90IGlu Y2x1ZGluZwogICAgT1JERVJFRCBhbmQgVU5PUkRFUkVEKS4gICovCiAKLWludAorYm9vbAogb3Jk ZXJlZF9jb21wYXJpc29uX29wZXJhdG9yIChydHggb3AsIG1hY2hpbmVfbW9kZSBtb2RlKQogewog ICBpZiAobW9kZSAhPSBWT0lEbW9kZSAmJiBHRVRfTU9ERSAob3ApICE9IG1vZGUpCkBAIC0xODc0 LDEwICsxODc1LDEwIEBAIG9yZGVyZWRfY29tcGFyaXNvbl9vcGVyYXRvciAocnR4IG9wLCBtYWNo aW5lX21vZGUgbW9kZSkKICAgICB9CiB9CiAKLS8qIFJldHVybiAxIGlmIHRoaXMgaXMgYSBjb21w YXJpc29uIG9wZXJhdG9yLiAgVGhpcyBhbGxvd3MgdGhlIHVzZSBvZgorLyogUmV0dXJuIHRydWUg aWYgdGhpcyBpcyBhIGNvbXBhcmlzb24gb3BlcmF0b3IuICBUaGlzIGFsbG93cyB0aGUgdXNlIG9m CiAgICBNQVRDSF9PUEVSQVRPUiB0byByZWNvZ25pemUgYWxsIHRoZSBicmFuY2ggaW5zbnMuICAq LwogCi1pbnQKK2Jvb2wKIGNvbXBhcmlzb25fb3BlcmF0b3IgKHJ0eCBvcCwgbWFjaGluZV9tb2Rl IG1vZGUpCiB7CiAgIHJldHVybiAoKG1vZGUgPT0gVk9JRG1vZGUgfHwgR0VUX01PREUgKG9wKSA9 PSBtb2RlKQpkaWZmIC0tZ2l0IGEvZ2NjL3JlY29nLmggYi9nY2MvcmVjb2cuaAppbmRleCBlOTZl NjZlOTlmMi4uNjUzZDBiMDgxODQgMTAwNjQ0Ci0tLSBhL2djYy9yZWNvZy5oCisrKyBiL2djYy9y ZWNvZy5oCkBAIC0zOTMsNyArMzkzLDcgQEAgd2hpY2hfb3BfYWx0ICgpCiAvKiBBIHRhYmxlIGRl ZmluZWQgaW4gaW5zbi1vdXRwdXQuYyB0aGF0IGdpdmUgaW5mb3JtYXRpb24gYWJvdXQKICAgIGVh Y2ggaW5zbi1jb2RlIHZhbHVlLiAgKi8KIAotdHlwZWRlZiBpbnQgKCppbnNuX29wZXJhbmRfcHJl ZGljYXRlX2ZuKSAocnR4LCBtYWNoaW5lX21vZGUpOwordHlwZWRlZiBib29sICgqaW5zbl9vcGVy YW5kX3ByZWRpY2F0ZV9mbikgKHJ0eCwgbWFjaGluZV9tb2RlKTsKIHR5cGVkZWYgY29uc3QgY2hh ciAqICgqaW5zbl9vdXRwdXRfZm4pIChydHggKiwgcnR4X2luc24gKik7CiAKIHN0cnVjdCBpbnNu X2dlbl9mbgo= --000000000000edca3e05c60f842c--