From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MTuvR-0002Rk-DK for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:49:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MTuvQ-0002QZ-LL for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:49:20 -0400 Received: from [199.232.76.173] (port=44492 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTuvQ-0002QG-9E for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:49:20 -0400 Received: from ey-out-1920.google.com ([74.125.78.144]:48429) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MTuvP-0002f0-MW for qemu-devel@nongnu.org; Thu, 23 Jul 2009 05:49:20 -0400 Received: by ey-out-1920.google.com with SMTP id 5so207122eyb.4 for ; Thu, 23 Jul 2009 02:49:18 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <761ea48b0907230225g77d7d0e6q6e1fd8af302ed795@mail.gmail.com> References: <5b31733c0907230208o7374ad68uf6e4438a5c5a41d5@mail.gmail.com> <761ea48b0907230225g77d7d0e6q6e1fd8af302ed795@mail.gmail.com> Date: Thu, 23 Jul 2009 11:49:18 +0200 Message-ID: <5b31733c0907230249xb1a4384k6c4f2b48defde1ae@mail.gmail.com> Subject: Re: [Qemu-devel] [PATCH] RFC: TCG constant propagation. From: Filip Navara Content-Type: multipart/mixed; boundary=0016e6db66fac28994046f5c661d List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Desnogues Cc: qemu-devel@nongnu.org, Paul Brook --0016e6db66fac28994046f5c661d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Thu, Jul 23, 2009 at 11:25 AM, Laurent Desnogues wrote: > On Thu, Jul 23, 2009 at 11:08 AM, Filip Navara wr= ote: >> 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. > > This is wrong for two reasons: > =A0 - this is a rotation, you only check for shifts I deliberately didn't do it, but it's surely an opportunity for further optimization. > =A0 - the rotation amount is multiplied by 2 before being applied to the > =A0 =A0 8-bit immediate field. As Paul already pointed out, that's compensated by the shift (<< 7 instead of << 8) and the "& ~1" after ctz32 call. Attached is fixed version of the patch, I forgot one "return" there. Best regards, Filip Navara --0016e6db66fac28994046f5c661d 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_fxhax1kw0 RnJvbSBkMzI2YWFiZTg1NDEyYTkxYzE3ZTBiZTJlYmJmZDA3OGJlYzE2NzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGaWxpcCBOYXZhcmEgPGZpbGlwLm5hdmFyYUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjMgSnVsIDIwMDkgMTE6MDE6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIv Ml0gVXNlIEFSTSBiYXJyZWwgc2hpZnRlciBmb3IgbW9yZSBvcHRpbWFsIGdlbmVyYXRpb24gb2Yg TVZOLCBNT1YgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgTU9WSSBUQ0cgb3BlcmF0aW9uLgoKLS0tCiB0 Y2cvYXJtL3RjZy10YXJnZXQuYyB8ICAgMTIgKysrKysrKysrKysrCiAxIGZpbGVzIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGNnL2FybS90 Y2ctdGFyZ2V0LmMgYi90Y2cvYXJtL3RjZy10YXJnZXQuYwppbmRleCA3ZWYyYjg5Li45NzQ4Y2Uy IDEwMDY0NAotLS0gYS90Y2cvYXJtL3RjZy10YXJnZXQuYworKysgYi90Y2cvYXJtL3RjZy10YXJn ZXQuYwpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X21vdmkz MihUQ0dDb250ZXh0ICpzLAogICAgICAgICAgICAgICAgIGludCBjb25kLCBpbnQgcmQsIGludDMy X3QgYXJnKQogewogICAgIGludCBvZmZzZXQgPSAodWludDMyX3QpIGFyZyAtICgodWludDMyX3Qp IHMtPmNvZGVfcHRyICsgOCk7CisgICAgaW50IHNoaWZ0OwogCiAgICAgLyogVE9ETzogVGhpcyBp cyB2ZXJ5IHN1Ym9wdGltYWwsIHdlIGNhbiBlYXNpbHkgaGF2ZSBhIGNvbnN0YW50CiAgICAgICog cG9vbCBzb21ld2hlcmUgYWZ0ZXIgYWxsIHRoZSBpbnN0cnVjdGlvbnMuICAqLwpAQCAtMzQ2LDYg KzM0NywxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGNnX291dF9tb3ZpMzIoVENHQ29udGV4dCAq cywKICAgICAgICAgICAgICAgICB0Y2dfb3V0X2RhdF9pbW0ocywgY29uZCwgQVJJVEhfQURELCBy ZCwgMTUsIG9mZnNldCkgOgogICAgICAgICAgICAgICAgIHRjZ19vdXRfZGF0X2ltbShzLCBjb25k LCBBUklUSF9TVUIsIHJkLCAxNSwgLW9mZnNldCk7CiAKKyAgICBpZiAoYXJnIDwgMHgxMDApCisg ICAgICAgIHJldHVybiB0Y2dfb3V0X2RhdF9pbW0ocywgY29uZCwgQVJJVEhfTU9WLCByZCwgMCwg YXJnICYgMHhmZik7CisKKyAgICBzaGlmdCA9IGN0ejMyKGFyZykgJiB+MTsKKyAgICBpZiAoISgo YXJnID4+IHNoaWZ0KSAmIH4weGZmKSkKKyAgICAgICAgcmV0dXJuIHRjZ19vdXRfZGF0X2ltbShz LCBjb25kLCBBUklUSF9NT1YsIHJkLCAwLCAoYXJnID4+IHNoaWZ0KSArIChzaGlmdCA8PCA3KSk7 CisKKyAgICBzaGlmdCA9IGN0ejMyKH5hcmcpICYgfjE7CisgICAgaWYgKCEoKH5hcmcgPj4gc2hp ZnQpICYgfjB4ZmYpKQorICAgICAgICByZXR1cm4gdGNnX291dF9kYXRfaW1tKHMsIGNvbmQsIEFS SVRIX01WTiwgcmQsIDAsICh+YXJnID4+IHNoaWZ0KSArIChzaGlmdCA8PCA3KSk7CisKICNpZmRl ZiBfX0FSTV9BUkNIXzdBX18KICAgICAvKiB1c2UgbW92dy9tb3Z0ICovCiAgICAgLyogbW92dyAq LwotLSAKMS42LjMuMi4xMjk5LmdlZTQ2YwoK --0016e6db66fac28994046f5c661d--