From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MTuIL-000840-VI for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:08:58 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MTuIF-0007zf-9B for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:08:55 -0400 Received: from [199.232.76.173] (port=48266 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTuIE-0007zL-Bh for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:08:50 -0400 Received: from mail-ew0-f217.google.com ([209.85.219.217]:47848) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MTuID-00034y-8R for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:08:49 -0400 Received: by ewy17 with SMTP id 17so789205ewy.34 for ; Thu, 23 Jul 2009 02:08:47 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: Date: Thu, 23 Jul 2009 11:08:47 +0200 Message-ID: <5b31733c0907230208o7374ad68uf6e4438a5c5a41d5@mail.gmail.com> Subject: Re: [Qemu-devel] [PATCH] RFC: TCG constant propagation. From: Filip Navara Content-Type: multipart/mixed; boundary=0016e6dd974edf5967046f5bd5a1 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paul Brook --0016e6dd974edf5967046f5bd5a1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Jul 21, 2009 at 4:38 PM, Filip Navara wrote= : > Add support for constant propagation to TCG. This has to be paired with t= he liveness > analysis to remove the dead code. Not all possible operations are covered= , but the > most common ones are. This improves the code generation for several ARM i= nstructions, > like MVN (immediate), and it may help other targets as well. > --- > =A0tcg/tcg.c | =A0164 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++++++++ > =A01 files changed, 164 insertions(+), 0 deletions(-) Attached is updated version of the patch which adds profiling code for the TCG pass and hopefully fixes it for TCG 64-bit targets. Also it looks that the actual code size is worse for TCG ARM target with this optimization. To mitigate it I propose the other attached patch which uses the barrel shifter for more optimal generation of the "movi" operation. I can't test it, so any help is welcome. Best regards, Filip Navara --0016e6dd974edf5967046f5bd5a1 Content-Type: application/octet-stream; name="0001-TCG-constant-propagation.patch" Content-Disposition: attachment; filename="0001-TCG-constant-propagation.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxh9gsac0 RnJvbSA0MDNjN2QxOWRmMzRmYjI1YThiNTdkOTAwMDA2OTdhODM0ODhjZDQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGaWxpcCBOYXZhcmEgPGZpbGlwLm5hdmFyYUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjEgSnVsIDIwMDkgMTY6MzE6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv Ml0gVENHIGNvbnN0YW50IHByb3BhZ2F0aW9uLgoKQWRkIHN1cHBvcnQgZm9yIGNvbnN0YW50IHBy b3BhZ2F0aW9uIHRvIFRDRy4gVGhpcyBoYXMgdG8gYmUgcGFpcmVkIHdpdGggdGhlIGxpdmVuZXNz CmFuYWx5c2lzIHRvIHJlbW92ZSB0aGUgZGVhZCBjb2RlLiBOb3QgYWxsIHBvc3NpYmxlIG9wZXJh dGlvbnMgYXJlIGNvdmVyZWQsIGJ1dCB0aGUKbW9zdCBjb21tb24gb25lcyBhcmUuIFRoaXMgaW1w cm92ZXMgdGhlIGNvZGUgZ2VuZXJhdGlvbiBmb3Igc2V2ZXJhbCBBUk0gaW5zdHJ1Y3Rpb25zLAps aWtlIE1WTiAoaW1tZWRpYXRlKSwgYW5kIGl0IG1heSBoZWxwIG90aGVyIHRhcmdldHMgYXMgd2Vs bC4KCnYxIC0+IHYyOgpBZGRlZCBwcm9maWxpbmcgY29kZSBhbmQgaG9wZWZ1bGx5IGZpeGVkIGZv ciA2NC1iaXQgVENHIHRhcmdldHMuCi0tLQogdGNnL3RjZy5jIHwgIDIwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0Y2cvdGNn LmggfCAgICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMjAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvdGNnL3RjZy5jIGIvdGNnL3RjZy5jCmluZGV4IDRjYjU5MzQu LmUyM2UzMDMgMTAwNjQ0Ci0tLSBhL3RjZy90Y2cuYworKysgYi90Y2cvdGNnLmMKQEAgLTEwMjUs NyArMTAyNSwxOTkgQEAgdm9pZCB0Y2dfYWRkX3RhcmdldF9hZGRfb3BfZGVmcyhjb25zdCBUQ0dU YXJnZXRPcERlZiAqdGRlZnMpCiAjZW5kaWYKICAgICAgICAgdGRlZnMrKzsKICAgICB9Cit9CisK K3N0YXRpYyB2b2lkIHRjZ19jb25zdF9hbmFseXNpcyhUQ0dDb250ZXh0ICpzKQoreworICAgIGlu dCBuYl9jYXJncywgbmJfaWFyZ3MsIG5iX29hcmdzLCBkZXN0LCBzcmMsIHNyYzIsIGRlbF9hcmdz LCBpOworICAgIFRDR0FyZyAqYXJnczsKKyAgICB1aW50MTZfdCBvcDsKKyAgICB1aW50MTZfdCAq b3BjX3B0cjsKKyAgICBjb25zdCBUQ0dPcERlZiAqZGVmOworICAgIHVpbnQ4X3QgKmNvbnN0X3Rl bXBzOworICAgIHRjZ190YXJnZXRfdWxvbmcgKnRlbXBfdmFsdWVzOworICAgIHRjZ190YXJnZXRf dWxvbmcgdmFsLCBtYXNrOworICAgIHRjZ190YXJnZXRfdWxvbmcgZGVzdF92YWwsIHNyY192YWws IHNyYzJfdmFsOworCisgICAgY29uc3RfdGVtcHMgPSB0Y2dfbWFsbG9jKHMtPm5iX3RlbXBzKTsK KyAgICBtZW1zZXQoY29uc3RfdGVtcHMsIDAsIHMtPm5iX3RlbXBzKTsKKyAgICB0ZW1wX3ZhbHVl cyA9IHRjZ19tYWxsb2Mocy0+bmJfdGVtcHMgKiBzaXplb2YodWludDMyX3QpKTsKKworICAgIG9w Y19wdHIgPSBnZW5fb3BjX2J1ZjsKKyAgICBhcmdzID0gZ2VuX29wcGFyYW1fYnVmOworICAgIHdo aWxlIChvcGNfcHRyIDwgZ2VuX29wY19wdHIpIHsKKyAgICAgICAgb3AgPSAqb3BjX3B0cjsKKyAg ICAgICAgZGVmID0gJnRjZ19vcF9kZWZzW29wXTsKKyAgICAgICAgbmJfb2FyZ3MgPSBkZWYtPm5i X29hcmdzOworICAgICAgICBuYl9pYXJncyA9IGRlZi0+bmJfaWFyZ3M7CisgICAgICAgIG5iX2Nh cmdzID0gZGVmLT5uYl9jYXJnczsKKyAgICAgICAgZGVsX2FyZ3MgPSAwOworICAgICAgICBtYXNr ID0gfigodGNnX3RhcmdldF91bG9uZykwKTsKKworICAgICAgICBzd2l0Y2gob3ApIHsKKyAgICAg ICAgY2FzZSBJTkRFWF9vcF9tb3ZpX2kzMjoKKyNpZiBUQ0dfVEFSR0VUX1JFR19CSVRTID09IDY0 CisgICAgICAgIGNhc2UgSU5ERVhfb3BfbW92aV9pNjQ6CisjZW5kaWYKKyAgICAgICAgICAgIGRl c3QgPSBhcmdzWzBdOworICAgICAgICAgICAgdmFsID0gYXJnc1sxXTsKKyAgICAgICAgICAgIGNv bnN0X3RlbXBzW2Rlc3RdID0gMTsKKyAgICAgICAgICAgIHRlbXBfdmFsdWVzW2Rlc3RdID0gdmFs OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSU5ERVhfb3BfbW92X2kzMjoKKyNp ZiBUQ0dfVEFSR0VUX1JFR19CSVRTID09IDY0CisgICAgICAgIGNhc2UgSU5ERVhfb3BfbW92X2k2 NDoKKyNlbmRpZgorICAgICAgICAgICAgZGVzdCA9IGFyZ3NbMF07CisgICAgICAgICAgICBzcmMg PSBhcmdzWzFdOworICAgICAgICAgICAgY29uc3RfdGVtcHNbZGVzdF0gPSBjb25zdF90ZW1wc1tz cmNdOworICAgICAgICAgICAgdGVtcF92YWx1ZXNbZGVzdF0gPSB0ZW1wX3ZhbHVlc1tzcmNdOwor ICAgICAgICAgICAgYnJlYWs7CisjaWYgZGVmaW5lZChUQ0dfVEFSR0VUX0hBU19ub3RfaTMyKSB8 fCBkZWZpbmVkKFRDR19UQVJHRVRfSEFTX25vdF9pNjQpCisjaWZkZWYgVENHX1RBUkdFVF9IQVNf bm90X2kzMgorICAgICAgICBjYXNlIElOREVYX29wX25vdF9pMzI6CisjZW5kaWYKKyNpZiBUQ0df VEFSR0VUX1JFR19CSVRTID09IDY0CisgICAgICAgICAgICBtYXNrID0gMHhmZmZmZmZmZjsKKyNp ZmRlZiBUQ0dfVEFSR0VUX0hBU19ub3RfaTY0CisgICAgICAgIGNhc2UgSU5ERVhfb3Bfbm90X2k2 NDoKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAgICBkZXN0ID0gYXJnc1swXTsKKyAgICAgICAg ICAgIHNyYyA9IGFyZ3NbMV07CisgICAgICAgICAgICBpZiAoY29uc3RfdGVtcHNbc3JjXSkgewor ICAgICAgICAgICAgICAgIGNvbnN0X3RlbXBzW2Rlc3RdID0gMTsKKyAgICAgICAgICAgICAgICBk ZXN0X3ZhbCA9IH50ZW1wX3ZhbHVlc1tzcmNdOworICAgICAgICAgICAgICAgICpvcGNfcHRyID0g SU5ERVhfb3BfbW92aV9pMzI7CisgICAgICAgICAgICAgICAgYXJnc1sxXSA9IHRlbXBfdmFsdWVz W2Rlc3RdID0gZGVzdF92YWwgJiBtYXNrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICBjb25zdF90ZW1wc1tkZXN0XSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBicmVhazsKKyNlbmRpZgorICAgICAgICBjYXNlIElOREVYX29wX2FkZF9pMzI6CisgICAgICAg IGNhc2UgSU5ERVhfb3Bfc3ViX2kzMjoKKyAgICAgICAgY2FzZSBJTkRFWF9vcF9tdWxfaTMyOgor ICAgICAgICBjYXNlIElOREVYX29wX2FuZF9pMzI6CisgICAgICAgIGNhc2UgSU5ERVhfb3Bfb3Jf aTMyOgorICAgICAgICBjYXNlIElOREVYX29wX3hvcl9pMzI6CisgICAgICAgIGNhc2UgSU5ERVhf b3Bfc2hsX2kzMjoKKyAgICAgICAgY2FzZSBJTkRFWF9vcF9zaHJfaTMyOgorI2lmIFRDR19UQVJH RVRfUkVHX0JJVFMgPT0gNjQKKyAgICAgICAgICAgIG1hc2sgPSAweGZmZmZmZmZmOworICAgICAg ICBjYXNlIElOREVYX29wX2FkZF9pNjQ6CisgICAgICAgIGNhc2UgSU5ERVhfb3Bfc3ViX2k2NDoK KyAgICAgICAgY2FzZSBJTkRFWF9vcF9tdWxfaTY0OgorICAgICAgICBjYXNlIElOREVYX29wX2Fu ZF9pNjQ6CisgICAgICAgIGNhc2UgSU5ERVhfb3Bfb3JfaTY0OgorICAgICAgICBjYXNlIElOREVY X29wX3hvcl9pNjQ6CisgICAgICAgIGNhc2UgSU5ERVhfb3Bfc2hsX2k2NDoKKyAgICAgICAgY2Fz ZSBJTkRFWF9vcF9zaHJfaTY0OgorI2VuZGlmCisKKyAgICAgICAgICAgIGRlc3QgPSBhcmdzWzBd OworICAgICAgICAgICAgc3JjID0gYXJnc1sxXTsKKyAgICAgICAgICAgIHNyYzIgPSBhcmdzWzJd OworICAgICAgICAgICAgaWYgKGNvbnN0X3RlbXBzW3NyY10gJiYgY29uc3RfdGVtcHNbc3JjMl0p IHsKKyAgICAgICAgICAgICAgICBzcmNfdmFsID0gdGVtcF92YWx1ZXNbc3JjXTsKKyAgICAgICAg ICAgICAgICBzcmMyX3ZhbCA9IHRlbXBfdmFsdWVzW3NyYzJdOworICAgICAgICAgICAgICAgIGNv bnN0X3RlbXBzW2Rlc3RdID0gMTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAg ICAgICAgICAgICAgY2FzZSBJTkRFWF9vcF9hZGRfaTMyOgorI2lmIFRDR19UQVJHRVRfUkVHX0JJ VFMgPT0gNjQKKyAgICAgICAgICAgICAgICBjYXNlIElOREVYX29wX2FkZF9pNjQ6CisjZW5kaWYK KyAgICAgICAgICAgICAgICAgICAgZGVzdF92YWwgPSBzcmNfdmFsICsgc3JjMl92YWw7CisgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgSU5ERVhfb3Bfc3Vi X2kzMjoKKyNpZiBUQ0dfVEFSR0VUX1JFR19CSVRTID09IDY0CisgICAgICAgICAgICAgICAgY2Fz ZSBJTkRFWF9vcF9zdWJfaTY0OgorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIGRlc3RfdmFs ID0gc3JjX3ZhbCAtIHNyYzJfdmFsOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICBjYXNlIElOREVYX29wX211bF9pMzI6CisjaWYgVENHX1RBUkdFVF9SRUdfQklU UyA9PSA2NAorICAgICAgICAgICAgICAgIGNhc2UgSU5ERVhfb3BfbXVsX2k2NDoKKyNlbmRpZgor ICAgICAgICAgICAgICAgICAgICBkZXN0X3ZhbCA9IHNyY192YWwgKiBzcmMyX3ZhbDsKKyAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJTkRFWF9vcF9hbmRf aTMyOgorI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMgPT0gNjQKKyAgICAgICAgICAgICAgICBjYXNl IElOREVYX29wX2FuZF9pNjQ6CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgZGVzdF92YWwg PSBzcmNfdmFsICYgc3JjMl92YWw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgICAgIGNhc2UgSU5ERVhfb3Bfb3JfaTMyOgorI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMg PT0gNjQKKyAgICAgICAgICAgICAgICBjYXNlIElOREVYX29wX29yX2k2NDoKKyNlbmRpZgorICAg ICAgICAgICAgICAgICAgICBkZXN0X3ZhbCA9IHNyY192YWwgfCBzcmMyX3ZhbDsKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJTkRFWF9vcF94b3JfaTMy OgorI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMgPT0gNjQKKyAgICAgICAgICAgICAgICBjYXNlIElO REVYX29wX3hvcl9pNjQ6CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgZGVzdF92YWwgPSBz cmNfdmFsIF4gc3JjMl92YWw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgICAgIGNhc2UgSU5ERVhfb3Bfc2hsX2kzMjoKKyNpZiBUQ0dfVEFSR0VUX1JFR19CSVRTID09 IDY0CisgICAgICAgICAgICAgICAgY2FzZSBJTkRFWF9vcF9zaGxfaTY0OgorI2VuZGlmCisgICAg ICAgICAgICAgICAgICAgIGRlc3RfdmFsID0gc3JjX3ZhbCA8PCBzcmMyX3ZhbDsKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBJTkRFWF9vcF9zaHJfaTMy OgorI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMgPT0gNjQKKyAgICAgICAgICAgICAgICBjYXNlIElO REVYX29wX3Nocl9pNjQ6CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgZGVzdF92YWwgPSBz cmNfdmFsID4+IHNyYzJfdmFsOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICB0Y2dfYWJvcnQoKTsKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAqb3BjX3B0ciA9IElOREVYX29wX21vdmlfaTMyOyAgICAgICAgICAgICAgICAKKyAgICAgICAg ICAgICAgICBhcmdzWzFdID0gdGVtcF92YWx1ZXNbZGVzdF0gPSBkZXN0X3ZhbCAmIG1hc2s7Cisg ICAgICAgICAgICAgICAgZGVsX2FyZ3MgPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgICBjb25zdF90ZW1wc1tkZXN0XSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJTkRFWF9vcF9jYWxsOgorICAgICAgICAgICAgbmJf b2FyZ3MgPSBhcmdzWzBdID4+IDE2OworICAgICAgICAgICAgbmJfaWFyZ3MgPSBhcmdzWzBdICYg MHhmZmZmOworICAgICAgICAgICAgbmJfY2FyZ3MgPSBkZWYtPm5iX2NhcmdzOworICAgICAgICAg ICAgYXJncysrOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX29hcmdzOyBpKyspIHsK KyAgICAgICAgICAgICAgICBjb25zdF90ZW1wc1thcmdzW2ldXSA9IDA7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJTkRFWF9vcF9ub3BuOgorICAgICAg ICAgICAgLyogdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgICAgICAgICAgbmJf Y2FyZ3MgPSBhcmdzWzBdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSU5ERVhf b3Bfc2V0X2xhYmVsOgorICAgICAgICAgICAgbWVtc2V0KGNvbnN0X3RlbXBzLCAwLCBzLT5uYl90 ZW1wcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg IGlmIChkZWYtPmZsYWdzICYgVENHX09QRl9CQl9FTkQpIHsKKyAgICAgICAgICAgICAgICBtZW1z ZXQoY29uc3RfdGVtcHMsIDAsIHMtPm5iX3RlbXBzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX29hcmdzOyBpKyspIHsKKyAgICAgICAg ICAgICAgICAgICAgY29uc3RfdGVtcHNbYXJnc1tpXV0gPSAwOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG9w Y19wdHIrKzsKKyAgICAgICAgYXJncyArPSBuYl9pYXJncyArIG5iX29hcmdzICsgbmJfY2FyZ3Mg LSBkZWxfYXJnczsKKyAgICAgICAgaWYgKGRlbF9hcmdzID4gMCkgeworICAgICAgICAgICAgZ2Vu X29wcGFyYW1fcHRyIC09IGRlbF9hcmdzOworICAgICAgICAgICAgbWVtbW92ZShhcmdzLCBhcmdz ICsgZGVsX2FyZ3MsIChnZW5fb3BwYXJhbV9wdHIgLSBhcmdzKSAqIHNpemVvZigqYXJncykpOwor ICAgICAgICB9CisgICAgfQogCisgICAgaWYgKGFyZ3MgIT0gZ2VuX29wcGFyYW1fcHRyKQorICAg ICAgICB0Y2dfYWJvcnQoKTsKIH0KIAogI2lmZGVmIFVTRV9MSVZFTkVTU19BTkFMWVNJUwpAQCAt MTg5Niw2ICsyMDg4LDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IHRjZ19nZW5fY29kZV9jb21tb24o VENHQ29udGV4dCAqcywgdWludDhfdCAqZ2VuX2NvZGVfYnVmLAogI2VuZGlmCiAKICNpZmRlZiBD T05GSUdfUFJPRklMRVIKKyAgICBzLT5jb25zdF90aW1lIC09IHByb2ZpbGVfZ2V0Y2xvY2soKTsK KyNlbmRpZgorICAgIHRjZ19jb25zdF9hbmFseXNpcyhzKTsKKyNpZmRlZiBDT05GSUdfUFJPRklM RVIKKyAgICBzLT5jb25zdF90aW1lICs9IHByb2ZpbGVfZ2V0Y2xvY2soKTsKKyNlbmRpZgorCisj aWZkZWYgQ09ORklHX1BST0ZJTEVSCiAgICAgcy0+bGFfdGltZSAtPSBwcm9maWxlX2dldGNsb2Nr KCk7CiAjZW5kaWYKICAgICB0Y2dfbGl2ZW5lc3NfYW5hbHlzaXMocyk7CkBAIC0yMDY4LDYgKzIy NjgsOCBAQCB2b2lkIHRjZ19kdW1wX2luZm8oRklMRSAqZiwKICAgICAgICAgICAgICAgICAoZG91 YmxlKXMtPmludGVybV90aW1lIC8gdG90ICogMTAwLjApOwogICAgIGNwdV9mcHJpbnRmKGYsICIg IGdlbl9jb2RlIHRpbWUgICAgICUwLjFmJSVcbiIsIAogICAgICAgICAgICAgICAgIChkb3VibGUp cy0+Y29kZV90aW1lIC8gdG90ICogMTAwLjApOworICAgIGNwdV9mcHJpbnRmKGYsICJjb25zdC9j b2RlIHRpbWUgICAgICUwLjFmJSVcbiIsIAorICAgICAgICAgICAgICAgIChkb3VibGUpcy0+Y29u c3RfdGltZSAvIChzLT5jb2RlX3RpbWUgPyBzLT5jb2RlX3RpbWUgOiAxKSAqIDEwMC4wKTsKICAg ICBjcHVfZnByaW50ZihmLCAibGl2ZW5lc3MvY29kZSB0aW1lICAlMC4xZiUlXG4iLCAKICAgICAg ICAgICAgICAgICAoZG91YmxlKXMtPmxhX3RpbWUgLyAocy0+Y29kZV90aW1lID8gcy0+Y29kZV90 aW1lIDogMSkgKiAxMDAuMCk7CiAgICAgY3B1X2ZwcmludGYoZiwgImNwdV9yZXN0b3JlIGNvdW50 ICAgJSIgUFJJZDY0ICJcbiIsCmRpZmYgLS1naXQgYS90Y2cvdGNnLmggYi90Y2cvdGNnLmgKaW5k ZXggYWQwYmQxNC4uZjgzMjJmMiAxMDA2NDQKLS0tIGEvdGNnL3RjZy5oCisrKyBiL3RjZy90Y2cu aApAQCAtMjg4LDYgKzI4OCw3IEBAIHN0cnVjdCBUQ0dDb250ZXh0IHsKICAgICBpbnQ2NF90IGNv ZGVfb3V0X2xlbjsKICAgICBpbnQ2NF90IGludGVybV90aW1lOwogICAgIGludDY0X3QgY29kZV90 aW1lOworICAgIGludDY0X3QgY29uc3RfdGltZTsKICAgICBpbnQ2NF90IGxhX3RpbWU7CiAgICAg aW50NjRfdCByZXN0b3JlX2NvdW50OwogICAgIGludDY0X3QgcmVzdG9yZV90aW1lOwotLSAKMS42 LjMuMi4xMjk5LmdlZTQ2YwoK --0016e6dd974edf5967046f5bd5a1 Content-Type: application/octet-stream; name="0002-Use-ARM-barrel-shifter-for-more-optimal-generation-o.patch" Content-Disposition: attachment; filename="0002-Use-ARM-barrel-shifter-for-more-optimal-generation-o.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxh9gsav1 RnJvbSAyMDNiNzI4NDQ3NzEwOTQxNTk4OWQ0NGI3MWRiZDE0OWQwNWNhYWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGaWxpcCBOYXZhcmEgPGZpbGlwLm5hdmFyYUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjMgSnVsIDIwMDkgMTE6MDE6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIv Ml0gVXNlIEFSTSBiYXJyZWwgc2hpZnRlciBmb3IgbW9yZSBvcHRpbWFsIGdlbmVyYXRpb24gb2Yg TVZOLCBNT1YgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgTU9WSSBUQ0cgb3BlcmF0aW9uLgoKLS0tCiB0 Y2cvYXJtL3RjZy10YXJnZXQuYyB8ICAgMTIgKysrKysrKysrKysrCiAxIGZpbGVzIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGNnL2FybS90 Y2ctdGFyZ2V0LmMgYi90Y2cvYXJtL3RjZy10YXJnZXQuYwppbmRleCA3ZWYyYjg5Li4wYzU5OTg0 IDEwMDY0NAotLS0gYS90Y2cvYXJtL3RjZy10YXJnZXQuYworKysgYi90Y2cvYXJtL3RjZy10YXJn ZXQuYwpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X21vdmkz MihUQ0dDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgIGludCBjb25kLCBpbnQgcmQsIGludDMy X3QgYXJnKQogewogICAgIGludCBvZmZzZXQgPSAodWludDMyX3QpIGFyZyAtICgodWludDMyX3Qp IHMtPmNvZGVfcHRyICsgOCk7CisgICAgaW50IHNoaWZ0OwogCiAgICAgLyogVE9ETzogVGhpcyBp cyB2ZXJ5IHN1Ym9wdGltYWwsIHdlIGNhbiBlYXNpbHkgaGF2ZSBhIGNvbnN0YW50CiAgICAgICog cG9vbCBzb21ld2hlcmUgYWZ0ZXIgYWxsIHRoZSBpbnN0cnVjdGlvbnMuICAqLwpAQCAtMzQ2LDYg KzM0NywxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGNnX291dF9tb3ZpMzIoVENHQ29udGV4dCAq cywKICAgICAgICAgICAgICAgICB0Y2dfb3V0X2RhdF9pbW0ocywgY29uZCwgQVJJVEhfQURELCBy ZCwgMTUsIG9mZnNldCkgOgogICAgICAgICAgICAgICAgIHRjZ19vdXRfZGF0X2ltbShzLCBjb25k LCBBUklUSF9TVUIsIHJkLCAxNSwgLW9mZnNldCk7CiAKKyAgICBpZiAoYXJnIDwgMHgxMDApCisg ICAgICAgIHRjZ19vdXRfZGF0X2ltbShzLCBjb25kLCBBUklUSF9NT1YsIHJkLCAwLCBhcmcgJiAw eGZmKTsKKworICAgIHNoaWZ0ID0gY3R6MzIoYXJnKSAmIH4xOworICAgIGlmICghKChhcmcgPj4g c2hpZnQpICYgfjB4ZmYpKQorICAgICAgICByZXR1cm4gdGNnX291dF9kYXRfaW1tKHMsIGNvbmQs IEFSSVRIX01PViwgcmQsIDAsIChhcmcgPj4gc2hpZnQpICsgKHNoaWZ0IDw8IDcpKTsKKworICAg IHNoaWZ0ID0gY3R6MzIofmFyZykgJiB+MTsKKyAgICBpZiAoISgofmFyZyA+PiBzaGlmdCkgJiB+ MHhmZikpCisgICAgICAgIHJldHVybiB0Y2dfb3V0X2RhdF9pbW0ocywgY29uZCwgQVJJVEhfTVZO LCByZCwgMCwgKH5hcmcgPj4gc2hpZnQpICsgKHNoaWZ0IDw8IDcpKTsKKwogI2lmZGVmIF9fQVJN X0FSQ0hfN0FfXwogICAgIC8qIHVzZSBtb3Z3L21vdnQgKi8KICAgICAvKiBtb3Z3ICovCi0tIAox LjYuMy4yLjEyOTkuZ2VlNDZjCgo= --0016e6dd974edf5967046f5bd5a1--