From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MUQlA-0000vd-2U for qemu-devel@nongnu.org; Fri, 24 Jul 2009 15:48:52 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MUQl9-0000uu-Fp for qemu-devel@nongnu.org; Fri, 24 Jul 2009 15:48:51 -0400 Received: from [199.232.76.173] (port=59128 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MUQl9-0000ud-B6 for qemu-devel@nongnu.org; Fri, 24 Jul 2009 15:48:51 -0400 Received: from fg-out-1718.google.com ([72.14.220.155]:46138) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MUQl8-0005Xd-OS for qemu-devel@nongnu.org; Fri, 24 Jul 2009 15:48:51 -0400 Received: by fg-out-1718.google.com with SMTP id l27so252762fgb.8 for ; Fri, 24 Jul 2009 12:48:49 -0700 (PDT) MIME-Version: 1.0 Date: Fri, 24 Jul 2009 21:48:49 +0200 Message-ID: <761ea48b0907241248w23b5c09fg19aed2483a733f3f@mail.gmail.com> From: Laurent Desnogues Content-Type: multipart/mixed; boundary=000e0cd2a0289e6ad9046f78e4a8 Subject: [Qemu-devel] [PATCH] ARM back-end: Handle all possible immediates for ALU ops List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --000e0cd2a0289e6ad9046f78e4a8 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hello, this patch handles all possible constants for immediate operand of ALU ops. I'm not very satisfied by the implementation. Laurent Signed-off-by: Laurent Desnogues --000e0cd2a0289e6ad9046f78e4a8 Content-Type: application/octet-stream; name="arm-codegen-imm.patch" Content-Disposition: attachment; filename="arm-codegen-imm.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxjbq1ek0 ZGlmZiAtLWdpdCBhL3RjZy9hcm0vdGNnLXRhcmdldC5jIGIvdGNnL2FybS90Y2ctdGFyZ2V0LmMK aW5kZXggN2VmMmI4OS4uNTYyNWY2ZSAxMDA2NDQKLS0tIGEvdGNnL2FybS90Y2ctdGFyZ2V0LmMK KysrIGIvdGNnL2FybS90Y2ctdGFyZ2V0LmMKQEAgLTE4MCwxMCArMTgwLDM3IEBAIHN0YXRpYyBp bnQgdGFyZ2V0X3BhcnNlX2NvbnN0cmFpbnQoVENHQXJnQ29uc3RyYWludCAqY3QsIGNvbnN0IGNo YXIgKipwY3Rfc3RyKQogfQogCiAKK3N0YXRpYyBpbmxpbmUgdWludDMyX3Qgcm90bCh1aW50MzJf dCB2YWwsIGludCBuKQoreworICByZXR1cm4gKHZhbCA8PCBuKSB8ICh2YWwgPj4gKDMyIC0gbikp OworfQorCisKKy8qIEFSTSBpbW1lZGlhdGVzIGZvciBBTFUgaW5zdHJ1Y3Rpb25zIGFyZSBtYWRl IG9mIGFuIHVuc2lnbmVkIDgtYml0CisgICByaWdodC1yb3RhdGVkIGJ5IGFuIGV2ZW4gYW1vdW50 IGJldHdlZW4gMCBhbmQgMzAuICovCitzdGF0aWMgaW5saW5lIGludCBlbmNvZGVfaW1tKHVpbnQz Ml90IGltbSkKK3sKKyAgICBpbnQgc2hpZnQ7CisKKyAgICAvKiBzaW1wbGUgY2FzZSwgb25seSBs b3dlciBiaXRzICovCisgICAgaWYgKChpbW0gJiB+MHhmZikgPT0gMCkKKyAgICAgICAgcmV0dXJu IDA7CisgICAgLyogdGhlbiB0cnkgYSBzaW1wbGUgZXZlbiBzaGlmdCAqLworICAgIHNoaWZ0ID0g Y3R6MzIoaW1tKSAmIH4xOworICAgIGlmICgoKGltbSA+PiBzaGlmdCkgJiB+MHhmZikgPT0gMCkK KyAgICAgICAgcmV0dXJuIDMyIC0gc2hpZnQ7CisgICAgLyogbm93IHRyeSBoYXJkZXIgd2l0aCBy b3RhdGlvbnMgKi8KKyAgICBmb3IgKHNoaWZ0ID0gMjsgc2hpZnQgPCAzMjsgc2hpZnQgKz0gMikg eworICAgICAgICBpZiAoKHJvdGwoaW1tLCBzaGlmdCkgJiB+MHhmZikgPT0gMCkKKyAgICAgICAg ICAgIHJldHVybiBzaGlmdDsKKyAgICB9CisgICAgLyogaW1tIGNhbid0IGJlIGVuY29kZWQgKi8K KyAgICByZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX2ZpdF9pbW0odWlu dDMyX3QgaW1tKQogewotICAgIC8qIFhYWDogdXNlIHJvdGF0aW9uICovCi0gICAgcmV0dXJuIChp bW0gJiB+MHhmZikgPT0gMDsKKyAgICByZXR1cm4gZW5jb2RlX2ltbShpbW0pID49IDA7CiB9CiAK IC8qIFRlc3QgaWYgYSBjb25zdGFudCBtYXRjaGVzIHRoZSBjb25zdHJhaW50LgpAQCAtMTQwNywx MCArMTQzNCwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGNnX291dF9vcChUQ0dDb250ZXh0ICpz LCBpbnQgb3BjLAogICAgICAgICBjID0gQVJJVEhfRU9SOwogICAgICAgICAvKiBGYWxsIHRocm91 Z2guICAqLwogICAgIGdlbl9hcml0aDoKLSAgICAgICAgaWYgKGNvbnN0X2FyZ3NbMl0pCisgICAg ICAgIGlmIChjb25zdF9hcmdzWzJdKSB7CisgICAgICAgICAgICBpbnQgcm90OworICAgICAgICAg ICAgcm90ID0gZW5jb2RlX2ltbShhcmdzWzJdKTsKICAgICAgICAgICAgIHRjZ19vdXRfZGF0X2lt bShzLCBDT05EX0FMLCBjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0sIGFy Z3NbMV0sIGFyZ3NbMl0pOwotICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXJnc1swXSwgYXJnc1sxXSwgcm90bChhcmdzWzJdLCByb3QpIHwgKHJvdCA8PCA3KSk7Cisg ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGNnX291dF9kYXRfcmVnKHMsIENPTkRfQUwsIGMs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwg U0hJRlRfSU1NX0xTTCgwKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTQyNyw2ICsxNDU2LDEwIEBA IHN0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X29wKFRDR0NvbnRleHQgKnMsIGludCBvcGMsCiAg ICAgY2FzZSBJTkRFWF9vcF9uZWdfaTMyOgogICAgICAgICB0Y2dfb3V0X2RhdF9pbW0ocywgQ09O RF9BTCwgQVJJVEhfUlNCLCBhcmdzWzBdLCBhcmdzWzFdLCAwKTsKICAgICAgICAgYnJlYWs7Cisg ICAgY2FzZSBJTkRFWF9vcF9ub3RfaTMyOgorICAgICAgICB0Y2dfb3V0X2RhdF9yZWcocywgQ09O RF9BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFSSVRIX01WTiwgYXJnc1swXSwgMCwgYXJn c1sxXSwgU0hJRlRfSU1NX0xTTCgwKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSU5ERVhf b3BfbXVsX2kzMjoKICAgICAgICAgdGNnX291dF9tdWwzMihzLCBDT05EX0FMLCBhcmdzWzBdLCBh cmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgYnJlYWs7CkBAIC0xNTU1LDEyICsxNTg4LDEzIEBA IHN0YXRpYyBjb25zdCBUQ0dUYXJnZXRPcERlZiBhcm1fb3BfZGVmc1tdID0gewogICAgIHsgSU5E RVhfb3Bfc3ViX2kzMiwgeyAiciIsICJyIiwgInJJIiB9IH0sCiAgICAgeyBJTkRFWF9vcF9tdWxf aTMyLCB7ICJyIiwgInIiLCAiciIgfSB9LAogICAgIHsgSU5ERVhfb3BfbXVsdTJfaTMyLCB7ICJy IiwgInIiLCAiciIsICJyIiB9IH0sCi0gICAgeyBJTkRFWF9vcF9kaXYyX2kzMiwgeyAiciIsICJy IiwgInIiLCAiMSIsICIyIiB9IH0sCi0gICAgeyBJTkRFWF9vcF9kaXZ1Ml9pMzIsIHsgInIiLCAi ciIsICJyIiwgIjEiLCAiMiIgfSB9LAorICAgIHsgSU5ERVhfb3BfZGl2Ml9pMzIsIHsgInIiLCAi ciIsICJyIiwgIjAiLCAiMSIgfSB9LAorICAgIHsgSU5ERVhfb3BfZGl2dTJfaTMyLCB7ICJyIiwg InIiLCAiciIsICIwIiwgIjEiIH0gfSwKICAgICB7IElOREVYX29wX2FuZF9pMzIsIHsgInIiLCAi ciIsICJySSIgfSB9LAogICAgIHsgSU5ERVhfb3Bfb3JfaTMyLCB7ICJyIiwgInIiLCAickkiIH0g fSwKICAgICB7IElOREVYX29wX3hvcl9pMzIsIHsgInIiLCAiciIsICJySSIgfSB9LAogICAgIHsg SU5ERVhfb3BfbmVnX2kzMiwgeyAiciIsICJyIiB9IH0sCisgICAgeyBJTkRFWF9vcF9ub3RfaTMy LCB7ICJyIiwgInIiIH0gfSwKIAogICAgIHsgSU5ERVhfb3Bfc2hsX2kzMiwgeyAiciIsICJyIiwg InJpIiB9IH0sCiAgICAgeyBJTkRFWF9vcF9zaHJfaTMyLCB7ICJyIiwgInIiLCAicmkiIH0gfSwK ZGlmZiAtLWdpdCBhL3RjZy9hcm0vdGNnLXRhcmdldC5oIGIvdGNnL2FybS90Y2ctdGFyZ2V0LmgK aW5kZXggN2ZmMjkyOC4uNzFlMWVjNSAxMDA2NDQKLS0tIGEvdGNnL2FybS90Y2ctdGFyZ2V0LmgK KysrIGIvdGNnL2FybS90Y2ctdGFyZ2V0LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNkZWZpbmUgVENH X1RBUkdFVF9IQVNfZXh0MTZzX2kzMgogI2RlZmluZSBUQ0dfVEFSR0VUX0hBU19uZWdfaTMyCiAj dW5kZWYgVENHX1RBUkdFVF9IQVNfbmVnX2k2NAorI2RlZmluZSBUQ0dfVEFSR0VUX0hBU19ub3Rf aTMyCiAjdW5kZWYgVENHX1RBUkdFVF9TVEFDS19HUk9XU1VQCiAKIGVudW0gewo= --000e0cd2a0289e6ad9046f78e4a8--