From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20535 invoked by alias); 7 Aug 2009 07:17:18 -0000 Received: (qmail 20523 invoked by uid 22791); 7 Aug 2009 07:17:17 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_46 X-Spam-Check-By: sourceware.org Received: from web112511.mail.gq1.yahoo.com (HELO web112511.mail.gq1.yahoo.com) (98.137.26.162) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Fri, 07 Aug 2009 07:17:10 +0000 Received: (qmail 78392 invoked by uid 60001); 7 Aug 2009 07:17:08 -0000 Message-ID: <919551.75637.qm@web112511.mail.gq1.yahoo.com> Received: from [123.237.137.139] by web112511.mail.gq1.yahoo.com via HTTP; Fri, 07 Aug 2009 00:17:07 PDT Date: Fri, 07 Aug 2009 07:25:00 -0000 From: paawan oza Subject: Re: final i386.floating.record.patch To: Michael Snyder Cc: Hui Zhu , "gdb-patches@sourceware.org" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-658253021-1249629427=:75637" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00102.txt.bz2 --0-658253021-1249629427=:75637 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2098 Hi Hui & Michael, Now we revert status registers also. please find the patch attached. I am sorry, if I am not pasting the patch in email-body due to tabs&spaces = problem faced by Michael last time. Regards, Oza. --- On Wed, 8/5/09, Michael Snyder wrote: > From: Michael Snyder > Subject: Re: final i386.floating.record.patch > To: "paawan oza" > Cc: "Hui Zhu" , "gdb-patches@sourceware.org" > Date: Wednesday, August 5, 2009, 7:03 AM > paawan oza wrote: > > Hi Hui, > >=20 > > please find my analysis as follows. > >=20 > > following are the registers which you may find it > different. > >=20 > > fstat > > ftag > > fiseg > > fioff > > foseg > > fooff > > fop > >=20 > > In my opinion, we do not need to record all these > registers. because these registers are purly depends on > instruction's execution status in FPU unit. > >=20 > >=20 > > for e.g. > > fop register stores te last opcode executed by x87 FPU > unit. > > fstat register may contain c0, c1, c2, c3 flag > status... > >=20 > > why we dont need to record, because even if we reply > the recod... > > Anyway these register are going to be change by FPU HW > unit based on any fp insn's nature and its execution. (next > insn which FPU is going to execute) > >=20 > > so it doesnt make much sense to store it, because even > if we restore it, FPU unit doesnt use them directly, but FPU > HW sets them after executing current fp insn. so anyway they > are going to reset as soon as FPU executes next insn. > >=20 > > but still if you feel that we must record those > registers because user might want to observe those > registers, then I can do that. > >=20 > > please let me know you opinion about it. >=20 > It may be that saving the registers is not purely > necessary, but > we are not just a simulator -- we are a debugger.=A0 The > user might > be confused if he steps backward and sees that the register > did not > change. >=20 > So I think we should preserve it and revert it. >=20 > =20=20=20=20=20=20= --0-658253021-1249629427=:75637 Content-Type: application/octet-stream; name="i386.record.float.aug-07.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="i386.record.float.aug-07.patch" Content-length: 19488 ZGlmZiAtdXJOIC4vZ2RiLm9yaWcvaTM4Ni10ZGVwLmMgZ2RiLm5ldy9pMzg2 LXRkZXAuYwotLS0gLi9nZGIub3JpZy9pMzg2LXRkZXAuYwkyMDA5LTA3LTEy IDEzOjQ2OjIxLjAwMDAwMDAwMCAtMDQwMAorKysgZ2RiLm5ldy9pMzg2LXRk ZXAuYwkyMDA5LTA4LTA3IDEyOjMyOjU4LjAwMDAwMDAwMCAtMDQwMApAQCAt MzEzOSw2ICszMTM5LDc0IEBACiAgIHJldHVybiAwOwogfQogCisKKy8qIERl ZmluZXMgY29udGVudHMgdG8gcmVjb3JkLiAgKi8KKyNkZWZpbmUgSTM4Nl9T QVZFX0ZQVV9SRUdTICAgICAgICAgICAgICAweGZmZmQKKyNkZWZpbmUgSTM4 Nl9TQVZFX0ZQVV9FTlYgICAgICAgICAgICAgICAweGZmZmUKKyNkZWZpbmUg STM4Nl9TQVZFX0ZQVV9FTlZfUkVHX1NUQUNLICAgICAweGZmZmYKKworLyog UmVjb3JkIHRoZSB2YWx1ZSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMg d2hpY2ggd2lsbCBiZSBjaGFuZ2VkIGJ5IHRoZQorICAgY3VycmVudCBpbnN0 cnVjdGlvbiB0byAicmVjb3JkX2FyY2hfbGlzdCIuICBSZXR1cm4gLTEgaWYg c29tZXRoaW5nIGlzIHdyb25nLiAgCisqLyAgCisKK3N0YXRpYyBpbnQgaTM4 Nl9yZWNvcmRfZmxvYXRzIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgIAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpMzg2X3Jl Y29yZF9zICppciwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGlyZWdudW0pCit7CisgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworICBpbnQgaTsKKwor ICAvKiBPemE6IEJlY2F1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgaW5zbiBwdXNo L3BvcCBvZiBmcHUgc3RhY2sgaXMgZ29pbmcgdG8gCisgICAgIGhhcHBlbi4g IEN1cnJlbnRseSB3ZSBzdG9yZSBzdDAtc3Q3IHJlZ2lzdGVycywgYnV0IHdl IG5lZWQgbm90IHN0b3JlIGFsbCAKKyAgICAgcmVnaXN0ZXJzIGFsbCB0aGUg dGltZSwgaW4gZnV0dXJlIHdlIHVzZSBmdGFnIHJlZ2lzdGVyIGFuZCByZWNv cmQgb25seSAKKyAgICAgdGhvc2Ugd2hvIGFyZSBub3QgbWFya2VkIGFzIGFu IGVtcHR5LiAgKi8KKworICBpZiAoSTM4Nl9TQVZFX0ZQVV9SRUdTID09IGly ZWdudW0pCisgICAgeworICAgICAgZm9yIChpID0gSTM4N19TVDBfUkVHTlVN ICh0ZGVwKTsgaSA8PSBJMzg3X1NUMF9SRUdOVU0gKHRkZXApICsgNzsgaSsr KQorICAgICAgICB7CisgICAgICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX3JlZyAoaXItPnJlZ2NhY2hlLCBpKSkKKyAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgZWxzZSBpZiAoSTM4Nl9TQVZF X0ZQVV9FTlYgPT0gaXJlZ251bSkKKyAgICB7CisgICAgICBmb3IgKGkgPSBJ Mzg3X0ZDVFJMX1JFR05VTSAodGRlcCk7IGkgPD0gSTM4N19GT1BfUkVHTlVN ICh0ZGVwKTsgaSsrKQorCSAgICAgIHsKKwkgICAgICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfcmVnIChpci0+cmVnY2FjaGUsIGkpKQorCSAgICAgICAg cmV0dXJuIC0xOworCSAgICAgIH0KKyAgICB9CisgIGVsc2UgaWYgKEkzODZf U0FWRV9GUFVfRU5WX1JFR19TVEFDSyA9PSBpcmVnbnVtKQorICAgIHsKKyAg ICAgIGZvciAoaSA9IEkzODdfU1QwX1JFR05VTSAodGRlcCk7IGkgPD0gSTM4 N19GT1BfUkVHTlVNICh0ZGVwKTsgaSsrKQorICAgICAgeworICAgICAgICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChpci0+cmVnY2FjaGUsIGkp KQorICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgIH0KKyAgICB9CisgIGVs c2UgaWYgKChpcmVnbnVtID49IEkzODdfU1QwX1JFR05VTSAodGRlcCkpICYm IAorICAgICAgICAgICAoaXJlZ251bSA8PSBJMzg3X0ZPUF9SRUdOVU0gKHRk ZXApKSkKKyAgICB7CisgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf cmVnIChpci0+cmVnY2FjaGUsaXJlZ251bSkpCisgICAgICAgIHJldHVybiAt MTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBQYXJhbWV0ZXIg ZXJyb3IuICAqLworICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgaWYoSTM4 Nl9TQVZFX0ZQVV9FTlYgIT0gaXJlZ251bSkKKyAgICB7CisgICAgZm9yIChp ID0gSTM4N19GQ1RSTF9SRUdOVU0gKHRkZXApOyBpIDw9IEkzODdfRk9QX1JF R05VTSAodGRlcCk7IGkrKykKKyAgICAgIHsKKyAgICAgIGlmIChyZWNvcmRf YXJjaF9saXN0X2FkZF9yZWcgKGlyLT5yZWdjYWNoZSwgaSkpCisgICAgICAg IHJldHVybiAtMTsKKyAgICAgIH0gICAgCisgICAgfSAgICAgICAgICAgICAK KyAgcmV0dXJuIDA7Cit9CisKIC8qIFBhcnNlIHRoZSBjdXJyZW50IGluc3Ry dWN0aW9uIGFuZCByZWNvcmQgdGhlIHZhbHVlcyBvZiB0aGUgcmVnaXN0ZXJz IGFuZAogICAgbWVtb3J5IHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGluIGN1cnJl bnQgaW5zdHJ1Y3Rpb24gdG8gInJlY29yZF9hcmNoX2xpc3QiLgogICAgUmV0 dXJuIC0xIGlmIHNvbWV0aGluZyB3cm9uZy4gKi8KQEAgLTMxNTMsNiArMzIy MSw3IEBACiAgIHVpbnQzMl90IHRtcHUzMjsKICAgdWludDMyX3Qgb3Bjb2Rl OwogICBzdHJ1Y3QgaTM4Nl9yZWNvcmRfcyBpcjsKKyAgc3RydWN0IGdkYmFy Y2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAKICAg bWVtc2V0ICgmaXIsIDAsIHNpemVvZiAoc3RydWN0IGkzODZfcmVjb3JkX3Mp KTsKICAgaXIucmVnY2FjaGUgPSByZWdjYWNoZTsKQEAgLTQxODgsOCArNDI1 Nyw3IEBACiAJfQogICAgICAgYnJlYWs7CiAKLSAgICAgIC8qIGZsb2F0cyAq LwotICAgICAgLyogSXQganVzdCByZWNvcmQgdGhlIG1lbW9yeSBjaGFuZ2Ug b2YgaW5zdHJjdXRpb24uICovCisgICAgLyogRmxvYXRzLiAgKi8KICAgICBj YXNlIDB4ZDg6CiAgICAgY2FzZSAweGQ5OgogICAgIGNhc2UgMHhkYToKQEAg LTQyMDMsNDUgKzQyNzEsNTYgQEAKICAgICAgIGlyLnJlZyB8PSAoKG9wY29k ZSAmIDcpIDw8IDMpOwogICAgICAgaWYgKGlyLm1vZCAhPSAzKQogCXsKLQkg IC8qIG1lbW9yeSAqLworCSAgLyogTWVtb3J5LiAgKi8KIAkgIHVpbnQzMl90 IGFkZHI7CiAKIAkgIGlmIChpMzg2X3JlY29yZF9sZWFfbW9kcm1fYWRkciAo JmlyLCAmYWRkcikpCiAJICAgIHJldHVybiAtMTsKIAkgIHN3aXRjaCAoaXIu cmVnKQogCSAgICB7Ci0JICAgIGNhc2UgMHgwMDoKLQkgICAgY2FzZSAweDAx OgogCSAgICBjYXNlIDB4MDI6CisgICAgICAgICAgICBjYXNlIDB4MTI6Cisg ICAgICAgICAgICBjYXNlIDB4MjI6CisgICAgICAgICAgICBjYXNlIDB4MzI6 CisgICAgICAgICAgICAgIC8qIEZvciBmY29tLCBmaWNvbSBub3RoaW5nIHRv IGRvLiAgKi8KKyAgICAgICAgICAgICAgYnJlYWs7CiAJICAgIGNhc2UgMHgw MzoKKyAgICAgICAgICAgIGNhc2UgMHgxMzoKKyAgICAgICAgICAgIGNhc2Ug MHgyMzoKKyAgICAgICAgICAgIGNhc2UgMHgzMzoKKyAgICAgICAgICAgICAg LyogRm9yIGZjb21wLCBmaWNvbXAgcG9wIEZQVSBzdGFjaywgc3RvcmUgYWxs LiAgKi8KKyAgICAgICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAo Z2RiYXJjaCwgJmlyLCBJMzg2X1NBVkVfRlBVX1JFR1MpKQorICAgICAgICAg ICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICBjYXNlIDB4MDA6CisgICAgICAgICAgICBjYXNlIDB4MDE6CiAJ ICAgIGNhc2UgMHgwNDoKIAkgICAgY2FzZSAweDA1OgogCSAgICBjYXNlIDB4 MDY6CiAJICAgIGNhc2UgMHgwNzoKIAkgICAgY2FzZSAweDEwOgogCSAgICBj YXNlIDB4MTE6Ci0JICAgIGNhc2UgMHgxMjoKLQkgICAgY2FzZSAweDEzOgog CSAgICBjYXNlIDB4MTQ6CiAJICAgIGNhc2UgMHgxNToKIAkgICAgY2FzZSAw eDE2OgogCSAgICBjYXNlIDB4MTc6CiAJICAgIGNhc2UgMHgyMDoKIAkgICAg Y2FzZSAweDIxOgotCSAgICBjYXNlIDB4MjI6Ci0JICAgIGNhc2UgMHgyMzoK IAkgICAgY2FzZSAweDI0OgogCSAgICBjYXNlIDB4MjU6CiAJICAgIGNhc2Ug MHgyNjoKIAkgICAgY2FzZSAweDI3OgogCSAgICBjYXNlIDB4MzA6CiAJICAg IGNhc2UgMHgzMToKLQkgICAgY2FzZSAweDMyOgotCSAgICBjYXNlIDB4MzM6 CiAJICAgIGNhc2UgMHgzNDoKIAkgICAgY2FzZSAweDM1OgogCSAgICBjYXNl IDB4MzY6CiAJICAgIGNhc2UgMHgzNzoKKyAgICAgICAgICAgICAgLyogRm9y IGZhZGQsIGZtdWwsIGZzdWIsIGZzdWJyLCBmZGl2LCBmZGl2ciwgZmlhZGQs IGZpbXVsLCAKKyAgICAgICAgICAgICAgICAgZmlzdWIsIGZpc3ViciwgZmlk aXYsIGZpZGl2ciwgbW9kUi9NLnJlZyBpcyBhbiBleHRlbnNpb24KKyAgICAg ICAgICAgICAgICAgb2YgY29kZSwgIGFsd2F5cyBhZmZlY3RzIHN0KDApIHJl Z2lzdGVyLiAgKi8KKyAgICAgICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zs b2F0cyAoZ2RiYXJjaCwgJmlyLCBJMzg3X1NUMF9SRUdOVU0gKHRkZXApKSkK KyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAJICAgICAgYnJlYWs7CiAJ ICAgIGNhc2UgMHgwODoKIAkgICAgY2FzZSAweDBhOgpAQCAtNDI1MCw2ICs0 MzI5LDcgQEAKIAkgICAgY2FzZSAweDE5OgogCSAgICBjYXNlIDB4MWE6CiAJ ICAgIGNhc2UgMHgxYjoKKyAgICAgICAgICAgIGNhc2UgMHgxZDogCiAJICAg IGNhc2UgMHgyODoKIAkgICAgY2FzZSAweDI5OgogCSAgICBjYXNlIDB4MmE6 CkBAIC00MjU4LDkgKzQzMzgsMTQgQEAKIAkgICAgY2FzZSAweDM5OgogCSAg ICBjYXNlIDB4M2E6CiAJICAgIGNhc2UgMHgzYjoKKyAgICAgICAgICAgIGNh c2UgMHgzYzogCisgICAgICAgICAgICBjYXNlIDB4M2Q6IAogCSAgICAgIHN3 aXRjaCAoaXIucmVnICYgNykKIAkJewogCQljYXNlIDA6CisJCSAgLyogSGFu ZGxpbmcgZmxkLCBmaWxkLiAgKi8KKwkJICBpZiAoaTM4Nl9yZWNvcmRfZmxv YXRzIChnZGJhcmNoLCAmaXIsIEkzODZfU0FWRV9GUFVfUkVHUykpCisJCSAg ICByZXR1cm4gLTE7CiAJCSAgYnJlYWs7CiAJCWNhc2UgMToKIAkJICBzd2l0 Y2ggKGlyLnJlZyA+PiA0KQpAQCAtNDI3NCw2ICs0MzU5LDcgQEAKIAkJCXJl dHVybiAtMTsKIAkJICAgICAgYnJlYWs7CiAJCSAgICBjYXNlIDM6CisJCSAg ICAgIGJyZWFrOwogCQkgICAgZGVmYXVsdDoKIAkJICAgICAgaWYgKHJlY29y ZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwgMikpCiAJCQlyZXR1cm4gLTE7 CkBAIC00Mjg0LDE1ICs0MzcwLDQ5IEBACiAJCSAgc3dpdGNoIChpci5yZWcg Pj4gNCkKIAkJICAgIHsKIAkJICAgIGNhc2UgMDoKKwkJICAgICAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwgNCkpCisJCQlyZXR1cm4g LTE7CisJCSAgICAgIGlmICgzID09IChpci5yZWcgJiA3KSkKKwkJCXsKKwkJ CSAgLyogRm9yIGZzdHAgbTMyZnAuICAqLworCQkJICBpZiAoaTM4Nl9yZWNv cmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIAorCQkJCQkJICBJMzg2X1NBVkVf RlBVX1JFR1MpKQorCQkJICAgIHJldHVybiAtMTsKKwkJCX0KKwkJICAgICAg YnJlYWs7CiAJCSAgICBjYXNlIDE6CiAJCSAgICAgIGlmIChyZWNvcmRfYXJj aF9saXN0X2FkZF9tZW0gKGFkZHIsIDQpKQogCQkJcmV0dXJuIC0xOworCQkg ICAgICBpZiAoKDMgPT0gKGlyLnJlZyAmIDcpKQorCQkJICB8fCAoNSA9PSAo aXIucmVnICYgNykpCisJCQkgIHx8ICg3ID09IChpci5yZWcgJiA3KSkpCisJ CQl7CisJCQkgIC8qIEZvciBmc3RwIGluc24uICAqLworCQkJICBpZiAoaTM4 Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIAorCQkJCQkJICBJMzg2 X1NBVkVfRlBVX1JFR1MpKQorCQkJICAgIHJldHVybiAtMTsKKwkJCX0KIAkJ ICAgICAgYnJlYWs7CiAJCSAgICBjYXNlIDI6CiAJCSAgICAgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9tZW0gKGFkZHIsIDgpKQogCQkJcmV0dXJuIC0x OworCQkgICAgICBpZiAoMyA9PSAoaXIucmVnICYgNykpCisJCQl7CisJCQkg IC8qIEZvciBmc3RwIG02NGZwLiAgKi8KKwkJCSAgaWYgKGkzODZfcmVjb3Jk X2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKwkJCQkJCSAgSTM4Nl9TQVZFX0ZQ VV9SRUdTKSkKKwkJCSAgICByZXR1cm4gLTE7CisJCQl9CiAJCSAgICAgIGJy ZWFrOwogCQkgICAgY2FzZSAzOgorCQkgICAgICBpZiAoKDMgPD0gKGlyLnJl ZyAmIDcpKSAmJiAoNiA8PSAoaXIucmVnICYgNykpKQorCQkJeworCQkJICAv KiBGb3IgZmlzdHAsIGZibGQsIGZpbGQsIGZic3RwLiAgKi8KKwkJCSAgaWYg KGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKwkJCQkJCSAg STM4Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJCSAgICByZXR1cm4gLTE7CisJCQl9 CisJCSAgICAgIC8qIEZhbGwgdGhyb3VnaCAqLyAgCiAJCSAgICBkZWZhdWx0 OgogCQkgICAgICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChhZGRy LCAyKSkKIAkJCXJldHVybiAtMTsKQEAgLTQzMDIsMTEgKzQ0MjIsMjEgQEAK IAkJfQogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIDB4MGM6CisgICAgICAg ICAgICAgIC8qIEluc24gZmxkZW52LiAgKi8KKyAgICAgICAgICAgICAgaWYg KGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTM4Nl9TQVZFX0ZQVV9F TlZfUkVHX1NUQUNLKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7Cisg ICAgICAgICAgICAgIGJyZWFrOwogCSAgICBjYXNlIDB4MGQ6Ci0JICAgIGNh c2UgMHgxZDoKKyAgICAgICAgICAgICAgLyogSW5zbiBmbGRjdy4gICovCisg ICAgICAgICAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gs ICZpciwgSTM4N19GQ1RSTF9SRUdOVU0gKHRkZXApKSkKKyAgICAgICAgICAg ICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgIGJyZWFrOwogCSAgICBj YXNlIDB4MmM6Ci0JICAgIGNhc2UgMHgzYzoKLQkgICAgY2FzZSAweDNkOgor ICAgICAgICAgICAgICAvKiBJbnNuIGZyc3Rvci4gICovCisgICAgICAgICAg ICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkzODZfU0FW RV9GUFVfRU5WX1JFR19TVEFDSykpCisgICAgICAgICAgICAgICAgcmV0dXJu IC0xOwogCSAgICAgIGJyZWFrOwogCSAgICBjYXNlIDB4MGU6CiAJICAgICAg aWYgKGlyLmRmbGFnKQpAQCAtNDMyOSw2ICs0NDU5LDkgQEAKIAkgICAgY2Fz ZSAweDNlOgogCSAgICAgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0g KGFkZHIsIDEwKSkKIAkJcmV0dXJuIC0xOworICAgICAgICAgICAgICAvKiBJ bnNuIGZzdHAsIGZic3RwLiAgKi8KKyAgICAgICAgICAgICAgaWYgKGkzODZf cmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCBJMzg2X1NBVkVfRlBVX1JF R1MpKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKIAkgICAgICBicmVh azsKIAkgICAgY2FzZSAweDJlOgogCSAgICAgIGlmIChpci5kZmxhZykKQEAg LTQzNDUsMTAgKzQ0NzgsMTcgQEAKIAkJfQogCSAgICAgIGlmIChyZWNvcmRf YXJjaF9saXN0X2FkZF9tZW0gKGFkZHIsIDgwKSkKIAkJcmV0dXJuIC0xOwor ICAgICAgICAgICAgICAvKiBJbnNuIGZzYXZlLiAgKi8KKyAgICAgICAgICAg ICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSTM4Nl9TQVZF X0ZQVV9FTlZfUkVHX1NUQUNLKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g LTE7CiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgMHgzZjoKIAkgICAgICBp ZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfbWVtIChhZGRyLCA4KSkKIAkJcmV0 dXJuIC0xOworICAgICAgICAgICAgICAvKiBJbnMgZmlzdHAuICAqLworICAg ICAgICAgICAgICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAm aXIsIEkzODZfU0FWRV9GUFVfUkVHUykpCisgICAgICAgICAgICAgICAgcmV0 dXJuIC0xOwogCSAgICAgIGJyZWFrOwogCSAgICBkZWZhdWx0OgogCSAgICAg IGlyLmFkZHIgLT0gMjsKQEAgLTQzNTcsOCArNDQ5NywyMTEgQEAKIAkgICAg ICBicmVhazsKIAkgICAgfQogCX0KKyAgICAgIC8qIE9wY29kZSBpcyBhbiBl eHRlbnNpb24gb2YgbW9kUi9NIGJ5dGUuICAqLyAgICAgCisgICAgICBlbHNl CisgICAgICAgIHsgCisJICBzd2l0Y2ggKG9wY29kZSkKKwkgICAgeworCSAg ICBjYXNlIDB4ZDg6CisJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAo Z2RiYXJjaCwgJmlyLCBJMzg3X1NUMF9SRUdOVU0gKHRkZXApKSkKKwkJcmV0 dXJuIC0xOwkKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSAweGQ5OiAgICAK KwkgICAgICBpZiAoMHgwYyA9PSAoaXIubW9kcm0gPj4gNCkpCisJCXsKKwkJ ICBpZiAoKGlyLm1vZHJtICYgMHgwZikgPD0gNykKKwkJICAgIHsKKwkJICAg ICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKwkJ CQkJICAgICAgSTM4Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJCXJldHVybiAtMTsJ CisJCSAgICB9CisgICAgICAgICAgICAgICAgICBlbHNlCisJCSAgICB7CisJ CSAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwg CisJCQkJCSAgICAgIEkzODdfU1QwX1JFR05VTSAodGRlcCkpKQorCQkJcmV0 dXJuIC0xOwkKKwkJICAgICAgLyogSWYgb25seSBzdCgwKSBpcyBjaGFuZ2lu ZywgdGhlbiB3ZSBoYXZlIGFscmVhZHkgCisJCQkgcmVjb3JkZWQuICAqLwor CQkgICAgICBpZiAoKGlyLm1vZHJtICYgMHgwZikgLSAweDA4KQorCQkJewor CQkJICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIAor CQkJCQkJICBJMzg3X1NUMF9SRUdOVU0gKHRkZXApICsKKwkJCQkJCSAgKChp ci5tb2RybSAmIDB4MGYpIC0gMHgwOCkpKQorCQkJICAgIHJldHVybiAtMTsJ ICAgICAgICAgICAgICAgICAgICAgIAorCQkJfQorCQkgICAgfQorCQl9Cisg ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisJCSAgc3dp dGNoIChpci5tb2RybSkKKwkJICAgIHsKKwkJICAgIGNhc2UgMHhlMDoKKwkJ ICAgIGNhc2UgMHhlMToKKwkJICAgIGNhc2UgMHhmMDoKKwkJICAgIGNhc2Ug MHhmNToKKwkJICAgIGNhc2UgMHhmODoKKwkJICAgIGNhc2UgMHhmYToKKwkJ ICAgIGNhc2UgMHhmYzoKKwkJICAgIGNhc2UgMHhmZToKKwkJICAgIGNhc2Ug MHhmZjoKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJj aCwgJmlyLCAKKwkJCQkJICAgICAgSTM4N19TVDBfUkVHTlVNICh0ZGVwKSkp CisJCQlyZXR1cm4gLTE7CisJCSAgICAgIGJyZWFrOworCQkgICAgY2FzZSAw eGYxOgorCQkgICAgY2FzZSAweGYyOgorCQkgICAgY2FzZSAweGYzOgorCQkg ICAgY2FzZSAweGY0OgorCQkgICAgY2FzZSAweGY2OgorCQkgICAgY2FzZSAw eGY3OgorCQkgICAgY2FzZSAweGU4OgorCQkgICAgY2FzZSAweGU5OgorCQkg ICAgY2FzZSAweGVhOgorCQkgICAgY2FzZSAweGViOgorCQkgICAgY2FzZSAw eGVjOgorCQkgICAgY2FzZSAweGVkOgorCQkgICAgY2FzZSAweGVlOgorCQkg ICAgY2FzZSAweGY5OgorCQkgICAgY2FzZSAweGZiOgorCQkgICAgICBpZiAo aTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIAorCQkJCQkgICAg ICBJMzg2X1NBVkVfRlBVX1JFR1MpKQorCQkJcmV0dXJuIC0xOworCQkgICAg ICBicmVhazsKKwkJICAgIGNhc2UgMHhmZDoKKwkJICAgICAgaWYgKGkzODZf cmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKwkJCQkJICAgICAgSTM4 N19TVDBfUkVHTlVNICh0ZGVwKSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICAg IGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgCisJCQkJ CSAgICAgIEkzODdfU1QwX1JFR05VTSAodGRlcCkgKyAxKSkKKwkJCXJldHVy biAtMTsKKwkJICAgICAgYnJlYWs7CisJCSAgICB9CisJCX0KKyAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDB4ZGE6CisgICAgICAg ICAgICAgIGlmICgweGU5ID09IGlyLm1vZHJtKQorICAgICAgICAgICAgICAg IHsKKwkJICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIs IEkzODZfU0FWRV9GUFVfUkVHUykpCisJCSAgICByZXR1cm4gLTE7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIGlmICgoMHgwYyA9 PSBpci5tb2RybSA+PiA0KSB8fCAoMHgwZCA9PSBpci5tb2RybSA+PiA0KSkK KyAgICAgICAgICAgICAgICB7CisJCSAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0 cyAoZ2RiYXJjaCwgJmlyLCAKKwkJCQkJICBJMzg3X1NUMF9SRUdOVU0gKHRk ZXApKSkKKwkJICAgIHJldHVybiAtMTsKKwkJICBpZiAoKChpci5tb2RybSAm IDB4MGYpID4gMCkgJiYgKChpci5tb2RybSAmIDB4MGYpIDw9IDcpKQorCQkg ICAgeworCQkgICAgICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNo LCAmaXIsIAorCQkJCQkgICAgICBJMzg3X1NUMF9SRUdOVU0gKHRkZXApICsg CisJCQkJCSAgICAgIChpci5tb2RybSAmIDB4MGYpKSkKKwkJCXJldHVybiAt MTsKKwkJICAgIH0KKwkJICBlbHNlIGlmICgoaXIubW9kcm0gJiAweDBmKSAt IDB4MDgpCisJCSAgICB7CisJCSAgICAgIGlmIChpMzg2X3JlY29yZF9mbG9h dHMgKGdkYmFyY2gsICZpciwgCisJCQkJCSAgICAgIEkzODdfU1QwX1JFR05V TSAodGRlcCkgKworCQkJCQkgICAgICAoKGlyLm1vZHJtICYgMHgwZikgLSAw eDA4KSkpCisJCQlyZXR1cm4gLTE7CisJCSAgICB9CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug MHhkYjoKKyAgICAgICAgICAgICAgaWYgKDB4ZTMgPT0gaXIubW9kcm0pCisg ICAgICAgICAgICAgICAgeworCQkgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMg KGdkYmFyY2gsICZpciwgSTM4Nl9TQVZFX0ZQVV9FTlYpKQorCQkgICAgcmV0 dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxz ZSBpZiAoKDB4MGMgPT0gaXIubW9kcm0gPj4gNCkgfHwgKDB4MGQgPT0gaXIu bW9kcm0gPj4gNCkpCisgICAgICAgICAgICAgICAgeworCQkgIGlmIChpMzg2 X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwgCisJCQkJCSAgSTM4N19T VDBfUkVHTlVNICh0ZGVwKSkpCisJCSAgICByZXR1cm4gLTE7CisJCSAgaWYg KCgoaXIubW9kcm0gJiAweDBmKSA+IDApICYmICgoaXIubW9kcm0gJiAweDBm KSA8PSA3KSkKKwkJICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zs b2F0cyAoZ2RiYXJjaCwgJmlyLCAKKwkJCQkJICAgICAgSTM4N19TVDBfUkVH TlVNICh0ZGVwKSArCisJCQkJCSAgICAgIChpci5tb2RybSAmIDB4MGYpKSkK KwkJCXJldHVybiAtMTsKKwkJICAgIH0KKwkJICBlbHNlIGlmICgoaXIubW9k cm0gJiAweDBmKSAtIDB4MDgpCisJCSAgICB7CisJCSAgICAgIGlmIChpMzg2 X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAgICAgSTM4 N19TVDBfUkVHTlVNICh0ZGVwKSArCisJCQkJCSAgICAgICgoaXIubW9kcm0g JiAweDBmKSAtIDB4MDgpKSkKKwkJCXJldHVybiAtMTsKKwkJICAgIH0KKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgY2FzZSAweGRjOgorICAgICAgICAgICAgICBpZiAoKDB4MGMgPT0g aXIubW9kcm0gPj4gNCkKKwkJICB8fCAoMHgwZCA9PSBpci5tb2RybSA+PiA0 KQorCQkgIHx8ICgweDBmID09IGlyLm1vZHJtID4+IDQpKQorICAgICAgICAg ICAgICAgIHsKKwkJICBpZiAoKGlyLm1vZHJtICYgMHgwZikgPD0gNykKKwkJ ICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJj aCwgJmlyLCAKKwkJCQkJICAgICAgSTM4N19TVDBfUkVHTlVNICh0ZGVwKSAr CisJCQkJCSAgICAgIChpci5tb2RybSAmIDB4MGYpKSkKKwkJCXJldHVybiAt MTsKKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7CisJCSAgICAgIGlmIChp Mzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwKKwkJCQkJICAgICAg STM4N19TVDBfUkVHTlVNICh0ZGVwKSArCisJCQkJCSAgICAgICgoaXIubW9k cm0gJiAweDBmKSAtIDB4MDgpKSkKKwkJCXJldHVybiAtMTsKKwkJICAgIH0K KyAgICAgICAgICAgICAgICB9CisJICAgICAgYnJlYWs7CisgICAgICAgICAg ICBjYXNlIDB4ZGQ6CisgICAgICAgICAgICAgIGlmICgweDBjID09IGlyLm1v ZHJtID4+IDQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwgJmlyLCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkzODdf RlRBR19SRUdOVU0gKHRkZXApKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxz ZSBpZiAoKDB4MGQgPT0gaXIubW9kcm0gPj4gNCkgfHwgKDB4MGUgPT0gaXIu bW9kcm0gPj4gNCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgaWYgKChpci5tb2RybSAmIDB4MGYpIDw9IDcpCisgICAgICAgICAg ICAgICAgICAgIHsKKwkJICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAo Z2RiYXJjaCwgJmlyLCAKKwkJCQkJICAgICAgSTM4N19TVDBfUkVHTlVNICh0 ZGVwKSArCisJCQkJCSAgICAgIChpci5tb2RybSAmIDB4MGYpKSkKKwkJCXJl dHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgaWYgKGkzODZfcmVjb3JkX2Zsb2F0cyAoZ2RiYXJjaCwg JmlyLCAKKwkJCQkJICAgICAgSTM4Nl9TQVZFX0ZQVV9SRUdTKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICBjYXNlIDB4ZGU6CisgICAgICAgICAgICAgIGlm ICgoMHgwYyA9PSBpci5tb2RybSA+PiA0KQorCQkgIHx8ICgweDBlID09IGly Lm1vZHJtID4+IDQpCisJCSAgfHwgKDB4MGYgPT0gaXIubW9kcm0gPj4gNCkK KwkJICB8fCAoMHhkOSA9PSBpci5tb2RybSkpCisgICAgICAgICAgICAgICAg eworCQkgIGlmIChpMzg2X3JlY29yZF9mbG9hdHMgKGdkYmFyY2gsICZpciwg STM4Nl9TQVZFX0ZQVV9SRUdTKSkKKwkJICAgIHJldHVybiAtMTsJIAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICBjYXNlIDB4ZGY6CisgICAgICAgICAgICAgIGlmICgweGUwID09IGly Lm1vZHJtKQorICAgICAgICAgICAgICAgIHsKKwkJICBpZiAocmVjb3JkX2Fy Y2hfbGlzdF9hZGRfcmVnIChpci5yZWdjYWNoZSwgSTM4Nl9FQVhfUkVHTlVN KSkKKwkJICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgIGVsc2UgaWYgKCgweDBmID09IGlyLm1vZHJtID4+IDQpIHx8 ICgweDBlID09IGlyLm1vZHJtID4+IDQpKQorICAgICAgICAgICAgICAgIHsK KwkJICBpZiAoaTM4Nl9yZWNvcmRfZmxvYXRzIChnZGJhcmNoLCAmaXIsIEkz ODZfU0FWRV9GUFVfUkVHUykpCisJCSAgICByZXR1cm4gLTE7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKwkgICAgfQorCX0K ICAgICAgIGJyZWFrOwotCiAgICAgICAvKiBzdHJpbmcgb3BzICovCiAgICAg ICAvKiBtb3ZzUyAqLwogICAgIGNhc2UgMHhhNDoKQEAgLTQ3NzUsMTIgKzUx MTgsMTggQEAKICAgICAgIGJyZWFrOwogCiAgICAgICAvKiBmd2FpdCAqLwot ICAgICAgLyogWFhYICovCiAgICAgY2FzZSAweDliOgotICAgICAgcHJpbnRm X3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGRvZXNuJ3Qgc3VwcG9y dCBpbnN0cnVjdGlvbiAiCi0JCQkgICAiZndhaXQuXG4iKSk7Ci0gICAgICBp ci5hZGRyIC09IDE7Ci0gICAgICBnb3RvIG5vX3N1cHBvcnQ7CisgICAgICBp ZiAodGFyZ2V0X3JlYWRfbWVtb3J5IChpci5hZGRyLCAmdG1wdTgsIDEpKQor ICAgICAgICB7CisgICAgICAgICAgaWYgKHJlY29yZF9kZWJ1ZykKKyAgICAg ICAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJQcm9jZXNzIHJlY29yZDog ZXJyb3IgcmVhZGluZyBtZW1vcnkgYXQgIgorCQkJCSAiYWRkciAweCVzIGxl biA9IDEuXG4iKSwKKwkJCSAgICAgICBwYWRkcmVzcyAoZ2RiYXJjaCwgaXIu YWRkcikpOworICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAg ICAgb3Bjb2RlID0gKHVpbnQzMl90KSB0bXB1ODsKKyAgICAgIGlyLmFkZHIr KzsKKyAgICAgIGdvdG8gcmVzd2l0Y2g7ICAgICAKICAgICAgIGJyZWFrOwog CiAgICAgICAvKiBpbnQzICovCg== --0-658253021-1249629427=:75637--