From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MPlKF-00041G-Tj for qemu-devel@nongnu.org; Sat, 11 Jul 2009 18:45:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MPlKB-0003y5-JB for qemu-devel@nongnu.org; Sat, 11 Jul 2009 18:45:47 -0400 Received: from [199.232.76.173] (port=57750 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MPlKB-0003xx-1h for qemu-devel@nongnu.org; Sat, 11 Jul 2009 18:45:43 -0400 Received: from mail-bw0-f210.google.com ([209.85.218.210]:48420) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MPlKA-0002T5-DV for qemu-devel@nongnu.org; Sat, 11 Jul 2009 18:45:42 -0400 Received: by bwz6 with SMTP id 6so281946bwz.34 for ; Sat, 11 Jul 2009 15:45:41 -0700 (PDT) MIME-Version: 1.0 Date: Sun, 12 Jul 2009 02:45:41 +0400 Message-ID: From: Igor Kovalenko Content-Type: multipart/mixed; boundary=001636418965343fe4046e75d97f Subject: [Qemu-devel] [PATCH] sparc64: unify mmu tag matching code List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --001636418965343fe4046e75d97f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit This patch extracts common part of sparc64 tag matching code used by IMMU and DMMU lookups. Signed-off-by: igor.v.kovalenko@gmail.com -- Kind regards, Igor V. Kovalenko --001636418965343fe4046e75d97f Content-Type: application/octet-stream; name=sparc64-compare-masked Content-Disposition: attachment; filename=sparc64-compare-masked Content-Transfer-Encoding: base64 X-Attachment-Id: f_fx0xc86z0 SW5kZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUtdHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvaGVscGVyLmMKKysrIHFlbXUtdHJ1bmsvdGFyZ2V0 LXNwYXJjL2hlbHBlci5jCkBAIC0zNzksMTIgKzM3OSw1NSBAQCBzdGF0aWMgaW5saW5lIHRhcmdl dF9waHlzX2FkZHJfdCB1bHRyYXNwCiAvKgogICogVWx0cmFTcGFyYyBJSWkgSS9ETU1VcwogICov CisKK3N0YXRpYyBpbmxpbmUgaW50IGNvbXBhcmVfbWFza2VkKHVpbnQ2NF90IHgsIHVpbnQ2NF90 IHksIHVpbnQ2NF90IG1hc2spCit7CisgICAgcmV0dXJuICh4ICYgbWFzaykgPT0gKHkgJiBtYXNr KTsKK30KKworLy8gUmV0dXJucyB0cnVlIGlmIFRURSB0YWcgaXMgdmFsaWQgYW5kIG1hdGNoZXMg dmlydHVhbCBhZGRyZXNzIHZhbHVlIGluIGNvbnRleHQKKy8vIHJlcXVpcmVzIHZpcnR1YWwgYWRk cmVzcyBtYXNrIHZhbHVlIGNhbGN1bGF0ZWQgZnJvbSBUVEUgZW50cnkgc2l6ZQorc3RhdGljIGlu bGluZSBpbnQgdWx0cmFzcGFyY190YWdfbWF0Y2godWludDY0X3QgdGxiX3RhZywgdWludDY0X3Qg dGxiX3R0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90 IGFkZHJlc3MsIHVpbnQ2NF90IGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfcGh5c19hZGRyX3QgKnBoeXNpY2FsKQoreworICAgIHVpbnQ2NF90 IG1hc2s7CisKKyAgICBzd2l0Y2ggKCh0bGJfdHRlID4+IDYxKSAmIDMpIHsKKyAgICBkZWZhdWx0 OgorICAgIGNhc2UgMHgwOiAvLyA4aworICAgICAgICBtYXNrID0gMHhmZmZmZmZmZmZmZmZlMDAw VUxMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDB4MTogLy8gNjRrCisgICAgICAgIG1hc2sg PSAweGZmZmZmZmZmZmZmZjAwMDBVTEw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMHgyOiAv LyA1MTJrCisgICAgICAgIG1hc2sgPSAweGZmZmZmZmZmZmZmODAwMDBVTEw7CisgICAgICAgIGJy ZWFrOworICAgIGNhc2UgMHgzOiAvLyA0TQorICAgICAgICBtYXNrID0gMHhmZmZmZmZmZmZmYzAw MDAwVUxMOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyB2YWxpZCwgY29udGV4dCBt YXRjaCwgdmlydHVhbCBhZGRyZXNzIG1hdGNoPworICAgIGlmICgodGxiX3R0ZSAmIDB4ODAwMDAw MDAwMDAwMDAwMFVMTCkgJiYKKyAgICAgICAgICAgIGNvbXBhcmVfbWFza2VkKGNvbnRleHQsIHRs Yl90YWcsIDB4MWZmZikgJiYKKyAgICAgICAgICAgIGNvbXBhcmVfbWFza2VkKGFkZHJlc3MsIHRs Yl90YWcsIG1hc2spKQorICAgIHsKKyAgICAgICAgLy8gZGVjb2RlIHBoeXNpY2FsIGFkZHJlc3MK KyAgICAgICAgKnBoeXNpY2FsID0gKCh0bGJfdHRlICYgbWFzaykgfCAoYWRkcmVzcyAmIH5tYXNr KSkgJiAweDFmZmZmZmZlMDAwVUxMOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBy ZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBnZXRfcGh5c2ljYWxfYWRkcmVzc19kYXRhKENQVVN0 YXRlICplbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Bo eXNfYWRkcl90ICpwaHlzaWNhbCwgaW50ICpwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF91bG9uZyBhZGRyZXNzLCBpbnQgcncsIGludCBpc191c2VyKQog ewotICAgIHRhcmdldF91bG9uZyBtYXNrOwogICAgIHVuc2lnbmVkIGludCBpOworICAgIHVpbnQ2 NF90IGNvbnRleHQ7CiAKICAgICBpZiAoKGVudi0+bHN1ICYgRE1NVV9FKSA9PSAwKSB7IC8qIERN TVUgZGlzYWJsZWQgKi8KICAgICAgICAgKnBoeXNpY2FsID0gdWx0cmFzcGFyY190cnVuY2F0ZV9w aHlzaWNhbChhZGRyZXNzKTsKQEAgLTM5MiwyNiArNDM1LDEzIEBAIHN0YXRpYyBpbnQgZ2V0X3Bo eXNpY2FsX2FkZHJlc3NfZGF0YShDUFUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAg Y29udGV4dCA9IGVudi0+ZG1tdXJlZ3NbMV0gJiAweDFmZmY7CisKICAgICBmb3IgKGkgPSAwOyBp IDwgNjQ7IGkrKykgewotICAgICAgICBzd2l0Y2ggKChlbnYtPmR0bGJfdHRlW2ldID4+IDYxKSAm IDMpIHsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgY2FzZSAweDA6IC8vIDhrCi0gICAgICAg ICAgICBtYXNrID0gMHhmZmZmZmZmZmZmZmZlMDAwVUxMOwotICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgIGNhc2UgMHgxOiAvLyA2NGsKLSAgICAgICAgICAgIG1hc2sgPSAweGZmZmZmZmZmZmZm ZjAwMDBVTEw7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAweDI6IC8vIDUxMmsK LSAgICAgICAgICAgIG1hc2sgPSAweGZmZmZmZmZmZmZmODAwMDBVTEw7Ci0gICAgICAgICAgICBi cmVhazsKLSAgICAgICAgY2FzZSAweDM6IC8vIDRNCi0gICAgICAgICAgICBtYXNrID0gMHhmZmZm ZmZmZmZmYzAwMDAwVUxMOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICAgICAg Ly8gY3R4IG1hdGNoLCB2YWRkciBtYXRjaCwgdmFsaWQ/Ci0gICAgICAgIGlmIChlbnYtPmRtbXVy ZWdzWzFdID09IChlbnYtPmR0bGJfdGFnW2ldICYgMHgxZmZmKSAmJgotICAgICAgICAgICAgKGFk ZHJlc3MgJiBtYXNrKSA9PSAoZW52LT5kdGxiX3RhZ1tpXSAmIG1hc2spICYmCi0gICAgICAgICAg ICAoZW52LT5kdGxiX3R0ZVtpXSAmIDB4ODAwMDAwMDAwMDAwMDAwMFVMTCkpIHsKKyAgICAgICAg aWYgKHVsdHJhc3BhcmNfdGFnX21hdGNoKGVudi0+ZHRsYl90YWdbaV0sIGVudi0+ZHRsYl90dGVb aV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLCBjb250ZXh0LCBw aHlzaWNhbCkKKyAgICAgICAgKSB7CiAgICAgICAgICAgICAvLyBhY2Nlc3Mgb2s/CiAgICAgICAg ICAgICBpZiAoKChlbnYtPmR0bGJfdHRlW2ldICYgMHg0KSAmJiBpc191c2VyKSB8fAogICAgICAg ICAgICAgICAgICghKGVudi0+ZHRsYl90dGVbaV0gJiAweDIpICYmIChydyA9PSAxKSkpIHsKQEAg LTQyNiw4ICs0NTYsNiBAQCBzdGF0aWMgaW50IGdldF9waHlzaWNhbF9hZGRyZXNzX2RhdGEoQ1BV CiAjZW5kaWYKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICpwaHlzaWNhbCA9ICgoZW52LT5kdGxiX3R0ZVtpXSAmIG1hc2spIHwgKGFkZHJlc3Mg JiB+bWFzaykpICYKLSAgICAgICAgICAgICAgICAgICAgICAgIDB4MWZmZmZmZmUwMDBVTEw7CiAg ICAgICAgICAgICAqcHJvdCA9IFBBR0VfUkVBRDsKICAgICAgICAgICAgIGlmIChlbnYtPmR0bGJf dHRlW2ldICYgMHgyKQogICAgICAgICAgICAgICAgICpwcm90IHw9IFBBR0VfV1JJVEU7CkBAIC00 MzcsNyArNDY1LDcgQEAgc3RhdGljIGludCBnZXRfcGh5c2ljYWxfYWRkcmVzc19kYXRhKENQVQog I2lmZGVmIERFQlVHX01NVQogICAgIHByaW50ZigiRE1JU1MgYXQgMHglIiBQUkl4NjQgIlxuIiwg YWRkcmVzcyk7CiAjZW5kaWYKLSAgICBlbnYtPmRtbXVyZWdzWzZdID0gKGFkZHJlc3MgJiB+MHgx ZmZmVUxMKSB8IChlbnYtPmRtbXVyZWdzWzFdICYgMHgxZmZmKTsKKyAgICBlbnYtPmRtbXVyZWdz WzZdID0gKGFkZHJlc3MgJiB+MHgxZmZmVUxMKSB8IGNvbnRleHQ7CiAgICAgZW52LT5leGNlcHRp b25faW5kZXggPSBUVF9ETUlTUzsKICAgICByZXR1cm4gMTsKIH0KQEAgLTQ0Niw4ICs0NzQsOCBA QCBzdGF0aWMgaW50IGdldF9waHlzaWNhbF9hZGRyZXNzX2NvZGUoQ1BVCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BoeXNfYWRkcl90ICpwaHlzaWNhbCwgaW50 ICpwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF91bG9u ZyBhZGRyZXNzLCBpbnQgaXNfdXNlcikKIHsKLSAgICB0YXJnZXRfdWxvbmcgbWFzazsKICAgICB1 bnNpZ25lZCBpbnQgaTsKKyAgICB1aW50NjRfdCBjb250ZXh0OwogCiAgICAgaWYgKChlbnYtPmxz dSAmIElNTVVfRSkgPT0gMCB8fCAoZW52LT5wc3RhdGUgJiBQU19SRUQpICE9IDApIHsKICAgICAg ICAgLyogSU1NVSBkaXNhYmxlZCAqLwpAQCAtNDU2LDI2ICs0ODQsMTMgQEAgc3RhdGljIGludCBn ZXRfcGh5c2ljYWxfYWRkcmVzc19jb2RlKENQVQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK KyAgICBjb250ZXh0ID0gZW52LT5kbW11cmVnc1sxXSAmIDB4MWZmZjsKKwogICAgIGZvciAoaSA9 IDA7IGkgPCA2NDsgaSsrKSB7Ci0gICAgICAgIHN3aXRjaCAoKGVudi0+aXRsYl90dGVbaV0gPj4g NjEpICYgMykgewotICAgICAgICBkZWZhdWx0OgotICAgICAgICBjYXNlIDB4MDogLy8gOGsKLSAg ICAgICAgICAgIG1hc2sgPSAweGZmZmZmZmZmZmZmZmUwMDBVTEw7Ci0gICAgICAgICAgICBicmVh azsKLSAgICAgICAgY2FzZSAweDE6IC8vIDY0awotICAgICAgICAgICAgbWFzayA9IDB4ZmZmZmZm ZmZmZmZmMDAwMFVMTDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDB4MjogLy8g NTEyawotICAgICAgICAgICAgbWFzayA9IDB4ZmZmZmZmZmZmZmY4MDAwMFVMTDsKLSAgICAgICAg ICAgIGJyZWFrOwotICAgICAgICBjYXNlIDB4MzogLy8gNE0KLSAgICAgICAgICAgIG1hc2sgPSAw eGZmZmZmZmZmZmZjMDAwMDBVTEw7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K ICAgICAgICAgLy8gY3R4IG1hdGNoLCB2YWRkciBtYXRjaCwgdmFsaWQ/Ci0gICAgICAgIGlmIChl bnYtPmRtbXVyZWdzWzFdID09IChlbnYtPml0bGJfdGFnW2ldICYgMHgxZmZmKSAmJgotICAgICAg ICAgICAgKGFkZHJlc3MgJiBtYXNrKSA9PSAoZW52LT5pdGxiX3RhZ1tpXSAmIG1hc2spICYmCi0g ICAgICAgICAgICAoZW52LT5pdGxiX3R0ZVtpXSAmIDB4ODAwMDAwMDAwMDAwMDAwMFVMTCkpIHsK KyAgICAgICAgaWYgKHVsdHJhc3BhcmNfdGFnX21hdGNoKGVudi0+aXRsYl90YWdbaV0sIGVudi0+ aXRsYl90dGVbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLCBj b250ZXh0LCBwaHlzaWNhbCkKKyAgICAgICAgKSB7CiAgICAgICAgICAgICAvLyBhY2Nlc3Mgb2s/ CiAgICAgICAgICAgICBpZiAoKGVudi0+aXRsYl90dGVbaV0gJiAweDQpICYmIGlzX3VzZXIpIHsK ICAgICAgICAgICAgICAgICBpZiAoZW52LT5pbW11cmVnc1szXSkgLyogRmF1bHQgc3RhdHVzIHJl Z2lzdGVyICovCkBAIC00ODgsOCArNTAzLDYgQEAgc3RhdGljIGludCBnZXRfcGh5c2ljYWxfYWRk cmVzc19jb2RlKENQVQogI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAqcGh5c2ljYWwgPSAoKGVudi0+aXRsYl90dGVbaV0gJiBtYXNr KSB8IChhZGRyZXNzICYgfm1hc2spKSAmCi0gICAgICAgICAgICAgICAgICAgICAgICAweDFmZmZm ZmZlMDAwVUxMOwogICAgICAgICAgICAgKnByb3QgPSBQQUdFX0VYRUM7CiAgICAgICAgICAgICBy ZXR1cm4gMDsKICAgICAgICAgfQpAQCAtNDk4LDcgKzUxMSw3IEBAIHN0YXRpYyBpbnQgZ2V0X3Bo eXNpY2FsX2FkZHJlc3NfY29kZShDUFUKICAgICBwcmludGYoIlRNSVNTIGF0IDB4JSIgUFJJeDY0 ICJcbiIsIGFkZHJlc3MpOwogI2VuZGlmCiAgICAgLyogQ29udGV4dCBpcyBzdG9yZWQgaW4gRE1N VSAoZG1tdXJlZ3NbMV0pIGFsc28gZm9yIElNTVUgKi8KLSAgICBlbnYtPmltbXVyZWdzWzZdID0g KGFkZHJlc3MgJiB+MHgxZmZmVUxMKSB8IChlbnYtPmRtbXVyZWdzWzFdICYgMHgxZmZmKTsKKyAg ICBlbnYtPmltbXVyZWdzWzZdID0gKGFkZHJlc3MgJiB+MHgxZmZmVUxMKSB8IGNvbnRleHQ7CiAg ICAgZW52LT5leGNlcHRpb25faW5kZXggPSBUVF9UTUlTUzsKICAgICByZXR1cm4gMTsKIH0K --001636418965343fe4046e75d97f--