From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kn6MV-0007LQ-S5 for qemu-devel@nongnu.org; Tue, 07 Oct 2008 02:48:03 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kn6MU-0007Kz-Cz for qemu-devel@nongnu.org; Tue, 07 Oct 2008 02:48:03 -0400 Received: from [199.232.76.173] (port=33786 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kn6MU-0007Kr-8G for qemu-devel@nongnu.org; Tue, 07 Oct 2008 02:48:02 -0400 Received: from rv-out-0708.google.com ([209.85.198.243]:7559) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kn6MT-0008DZ-ON for qemu-devel@nongnu.org; Tue, 07 Oct 2008 02:48:02 -0400 Received: by rv-out-0708.google.com with SMTP id f25so2912902rvb.22 for ; Mon, 06 Oct 2008 23:48:00 -0700 (PDT) Message-ID: <761ea48b0810062348m4a394195r1463952b0157e787@mail.gmail.com> Date: Tue, 7 Oct 2008 08:48:00 +0200 From: "Laurent Desnogues" Subject: Re: Hash table based symbol lookup (was: Re: [Qemu-devel] [PATCH] Fix symbol lookup for mips64* targets) In-Reply-To: <761ea48b0810060928p5f97e03cx7c43cbc1a75a0d6a@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_32345_25235539.1223362080318" References: <761ea48b0810060329l5d05315euea009eb97d22799b@mail.gmail.com> <761ea48b0810060928p5f97e03cx7c43cbc1a75a0d6a@mail.gmail.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_32345_25235539.1223362080318 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Here is a revised version that uses less memory while keeping the same complexity. This could be made less memory hungry by using some binary tree data structure at the expense of code complexity. I won't go down that road as anyway this stuff is mainly used for debugging and tracing purposes. Laurent ------=_Part_32345_25235539.1223362080318 Content-Type: text/x-patch; name=disass-ht2.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm06619b0 Content-Disposition: attachment; filename=disass-ht2.patch SW5kZXg6IGRpc2FzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGlzYXMuYwkocmV2aXNpb24gNTQzMCkKKysr IGRpc2FzLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwMCw5ICszMDAsMTA4IEBACiAgICAgfQogfQog CisjaWYgMQorLyogc3ltYm9sIGhhc2ggdGFibGUgdG8gc3BlZWQgdXAgbG9va3VwX3N5bWJvbCAq LworI2RlZmluZSBTWU1JTkZPX0hUX1NJWkUgIDMxMjF1CisKK3R5cGVkZWYgc3RydWN0IHN5bWlu Zm9faHRfZW50cnlfcyBzeW1pbmZvX2h0X2VudHJ5X3Q7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQg c3ltaW5mb19odF9oYXNoKHRhcmdldF91bG9uZyBhZGRyKQoreworICAgIHJldHVybiBhZGRyICUg U1lNSU5GT19IVF9TSVpFOworfQorCitzdHJ1Y3Qgc3ltaW5mb19odF9lbnRyeV9zIHsKKyAgICB0 YXJnZXRfdWxvbmcgICAgICAgIGFkZHI7CisgICAgY29uc3QgY2hhciAgICAgICAgICpuYW1lOwor ICAgIHN5bWluZm9faHRfZW50cnlfdCAqbmV4dDsKK307CisKK3N0YXRpYyBzeW1pbmZvX2h0X2Vu dHJ5X3QgKnN5bWluZm9faHRbU1lNSU5GT19IVF9TSVpFXTsKKworc3RhdGljIGNvbnN0IHN5bWlu Zm9faHRfZW50cnlfdCAqc3ltaW5mb19odF9zZWFyY2godGFyZ2V0X3Vsb25nIGFkZHIpCit7Cisg ICAgY29uc3Qgc3ltaW5mb19odF9lbnRyeV90ICpzeW1pbmZvX2h0X2VudHJ5OworCisgICAgZm9y IChzeW1pbmZvX2h0X2VudHJ5ID0gc3ltaW5mb19odFtzeW1pbmZvX2h0X2hhc2goYWRkcildOwor ICAgICAgICAgc3ltaW5mb19odF9lbnRyeTsKKyAgICAgICAgIHN5bWluZm9faHRfZW50cnkgPSBz eW1pbmZvX2h0X2VudHJ5LT5uZXh0KSB7CisgICAgICAgIGlmIChhZGRyID09IHN5bWluZm9faHRf ZW50cnktPmFkZHIpCisgICAgICAgICAgICByZXR1cm4gc3ltaW5mb19odF9lbnRyeTsKKyAgICB9 CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpzeW1pbmZvX2h0X2xv b2t1cCh0YXJnZXRfdWxvbmcgYWRkcikKK3sKKyAgICBjb25zdCBzeW1pbmZvX2h0X2VudHJ5X3Qg KnN5bWluZm9faHRfZW50cnk7CisKKyAgICBzeW1pbmZvX2h0X2VudHJ5ID0gc3ltaW5mb19odF9z ZWFyY2goYWRkcik7CisgICAgaWYgKHN5bWluZm9faHRfZW50cnkpCisgICAgICAgIHJldHVybiBz eW1pbmZvX2h0X2VudHJ5LT5uYW1lOworICAgIHJldHVybiAiIjsKK30KKworc3RhdGljIHZvaWQg c3ltaW5mb19odF9idWlsZCh2b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpLCBrZXk7CisgICAg c3RydWN0IHN5bWluZm8gKnM7CisgICAgLyogSGFjaywgYmVjYXVzZSB3ZSBrbm93IHRoaXMgaXMg eDg2LiAqLworICAgIEVsZjMyX1N5bSAqc3ltOworICAgIHRhcmdldF91bG9uZyBhZGRyLCBqOwor ICAgIGNvbnN0IHN5bWluZm9faHRfZW50cnlfdCAqc3ltaW5mb19odF9lbnRyeTsKKyAgICBzeW1p bmZvX2h0X2VudHJ5X3QgKm5ld19lbnRyeTsKKworICAgIGZvciAocyA9IHN5bWluZm9zOyBzOyBz ID0gcy0+bmV4dCkgeworICAgICAgICBzeW0gPSBzLT5kaXNhc19zeW10YWI7CisgICAgICAgIGZv ciAoaSA9IDA7IGkgPCBzLT5kaXNhc19udW1fc3ltczsgaSsrKSB7CisgICAgICAgICAgICBpZiAo c3ltW2ldLnN0X3NobmR4ID09IFNITl9VTkRFRgorICAgICAgICAgICAgICAgIHx8IHN5bVtpXS5z dF9zaG5keCA+PSBTSE5fTE9SRVNFUlZFKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg ICAgICAgICAgICBpZiAoRUxGX1NUX1RZUEUoc3ltW2ldLnN0X2luZm8pICE9IFNUVF9GVU5DKQor ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhZGRyID0gc3ltW2ldLnN0 X3ZhbHVlOworI2lmIGRlZmluZWQoVEFSR0VUX0FSTSkgfHwgZGVmaW5lZCAoVEFSR0VUX01JUFMp CisgICAgICAgICAgICAvKiBUaGUgYm90dG9tIGFkZHJlc3MgYml0IG1hcmtzIGEgVGh1bWIgb3Ig TUlQUzE2IHN5bWJvbC4gICovCisgICAgICAgICAgICBhZGRyICY9IH4odGFyZ2V0X3Vsb25nKTE7 CisjZW5kaWYKKyAgICAgICAgICAgIC8qIEVudGVyIFthZGRyLCBhZGRyICsgc3ltW2ldLnN0X3Np emVbIGluIHRoZSBoYXNoIHRhYmxlLiAqLworICAgICAgICAgICAgZm9yIChqID0gYWRkcjsgaiA8 IGFkZHIgKyBzeW1baV0uc3Rfc2l6ZTsgaisrKSB7CisgICAgICAgICAgICAgICAgc3ltaW5mb19o dF9lbnRyeSA9IHN5bWluZm9faHRfc2VhcmNoKGopOworICAgICAgICAgICAgICAgIC8qIElmIHRo ZSBhZGRyIGlzIGFscmVhZHkgaW4sIGtlZXAgdGhlIGZpcnN0LiAqLworICAgICAgICAgICAgICAg IGlmICghc3ltaW5mb19odF9lbnRyeSkgeworICAgICAgICAgICAgICAgICAgICAvKiBBZGQgdGhl IHN5bWJvbCBhdCB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuICovCisgICAgICAgICAgICAgICAgICAg IGtleSA9IHN5bWluZm9faHRfaGFzaChqKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VudHJ5 ID0gbWFsbG9jKHNpemVvZihzeW1pbmZvX2h0X2VudHJ5X3QpKTsKKyAgICAgICAgICAgICAgICAg ICAgbmV3X2VudHJ5LT5hZGRyID0gajsKKyAgICAgICAgICAgICAgICAgICAgbmV3X2VudHJ5LT5u YW1lID0gcy0+ZGlzYXNfc3RydGFiICsgc3ltW2ldLnN0X25hbWU7CisgICAgICAgICAgICAgICAg ICAgIG5ld19lbnRyeS0+bmV4dCA9IHN5bWluZm9faHRba2V5XTsKKyAgICAgICAgICAgICAgICAg ICAgc3ltaW5mb19odFtrZXldID0gbmV3X2VudHJ5OworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogLyogTG9vayB1cCBzeW1ib2wgZm9yIGRl YnVnZ2luZyBwdXJwb3NlLiAgUmV0dXJucyAiIiBpZiB1bmtub3duLiAqLwogY29uc3QgY2hhciAq bG9va3VwX3N5bWJvbCh0YXJnZXRfdWxvbmcgb3JpZ19hZGRyKQogeworICAgIHN0YXRpYyBpbnQg aHRfYnVpbHQgPSAwOworCisgICAgaWYgKCFodF9idWlsdCkgeworICAgICAgICBodF9idWlsdCA9 IDE7CisgICAgICAgIHN5bWluZm9faHRfYnVpbGQoKTsKKyAgICB9CisgICAgcmV0dXJuIHN5bWlu Zm9faHRfbG9va3VwKG9yaWdfYWRkcik7Cit9CisKKyNlbHNlCisKKy8qIExvb2sgdXAgc3ltYm9s IGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gIFJldHVybnMgIiIgaWYgdW5rbm93bi4gKi8KK2NvbnN0 IGNoYXIgKmxvb2t1cF9zeW1ib2wodGFyZ2V0X3Vsb25nIG9yaWdfYWRkcikKK3sKICAgICB1bnNp Z25lZCBpbnQgaTsKICAgICAvKiBIYWNrLCBiZWNhdXNlIHdlIGtub3cgdGhpcyBpcyB4ODYuICov CiAgICAgRWxmMzJfU3ltICpzeW07CkBAIC0zMzIsNiArNDMxLDggQEAKICAgICByZXR1cm4gIiI7 CiB9CiAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJfT05MWSkKIAogdm9pZCB0 ZXJtX3ZwcmludGYoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKTsK ------=_Part_32345_25235539.1223362080318--