From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v5 04/16] x86/boot/reloc: reduce assembly usage as much as possible Date: Sat, 20 Aug 2016 00:43:14 +0200 Message-ID: <1471646606-28519-5-git-send-email-daniel.kiper@oracle.com> References: <1471646606-28519-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1basWF-0002Hj-0r for xen-devel@lists.xenproject.org; Fri, 19 Aug 2016 22:44:07 +0000 In-Reply-To: <1471646606-28519-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org Li50byBpbmNyZWFzZSBjb2RlIHJlYWRhYmlsaXR5IGFuZCBlYXNlIGl0cyBtYWludGVuYW5jZS4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0t LQp2NSAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9yZWxv Yy5jIHwgICA1MiArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVs b2MuYwppbmRleCA2MzA0NWMwLi45YWU0MmUyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9v dC9yZWxvYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKQEAgLTE1LDM5ICsxNSwz MyBAQCBhc20gKAogICAgICIgICAgLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCiAg ICAgIiAgICAuZ2xvYmwgX3N0YXJ0ICAgICAgICAgICAgICAgICBcbiIKICAgICAiX3N0YXJ0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotICAgICIgICAgY2FsbCAxZiAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0gICAgIjE6ICBwb3AgICVlYnggICAgICAgICAgICAgICAgICAgICBc biIKLSAgICAiICAgIG1vdiAgJWVheCxhbGxvYy0xYiglZWJ4KSAgICAgIFxuIgotICAgICIgICAg am1wICByZWxvYyAgICAgICAgICAgICAgICAgICAgXG4iCi0gICAgKTsKLQotLyoKLSAqIFRoaXMg aXMgb3VyIGRhdGEuIEJlY2F1c2UgdGhlIGNvZGUgbXVzdCBiZSByZWxvY2F0YWJsZSwgbm8gQlNT IGlzCi0gKiBhbGxvd2VkLiBBbGwgZGF0YSBpcyBhY2Nlc3NlZCBQQy1yZWxhdGl2ZSB3aXRoIGlu bGluZSBhc3NlbWJseS4KLSAqLwotYXNtICgKLSAgICAiYWxsb2M6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgotICAgICIgICAgLmxvbmcgMCAgICAgICAgICAgICAgICAgICAgICAgXG4i CisgICAgIiAgICBwdXNoICVlYXggICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAiICAgIHB1 c2ggMHg4KCVlc3ApICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgY2FsbCByZWxvYyAgICAg ICAgICAgICAgICAgICAgXG4iCisgICAgIiAgICByZXQgICQweDQgICAgICAgICAgICAgICAgICAg ICBcbiIKICAgICApOwogCiB0eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7CiAjaW5jbHVkZSAiLi4v Li4vLi4vaW5jbHVkZS94ZW4vbXVsdGlib290LmgiCiAKKyNkZWZpbmUgX19zdGRjYWxsCV9fYXR0 cmlidXRlX18oKF9fc3RkY2FsbF9fKSkKKworI2RlZmluZSBBTElHTl9VUChhcmcsIGFsaWduKSBc CisgICAgICAgICAgICAgICAgKCgoYXJnKSArIChhbGlnbikgLSAxKSAmIH4oKHR5cGVvZihhcmcp KShhbGlnbikgLSAxKSkKKworc3RhdGljIHUzMiBhbGxvYzsKKwogc3RhdGljIHZvaWQgKnJlbG9j X21iaV9zdHJ1Y3Qodm9pZCAqb2xkLCB1bnNpZ25lZCBpbnQgYnl0ZXMpCiB7CiAgICAgdm9pZCAq bmV3OwotICAgIGFzbSgKLSAgICAiICAgIGNhbGwgMWYgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0gICAgIjE6ICBwb3AgICUlZWR4ICAgICAgICAgICAgICAgICAgIFxuIgotICAgICIgICAgbW92 ICBhbGxvYy0xYiglJWVkeCksJTAgICAgICBcbiIKLSAgICAiICAgIHN1YiAgJTEsJTAgICAgICAg ICAgICAgICAgICAgXG4iCi0gICAgIiAgICBhbmQgICR+MTUsJTAgICAgICAgICAgICAgICAgIFxu IgotICAgICIgICAgbW92ICAlMCxhbGxvYy0xYiglJWVkeCkgICAgICBcbiIKLSAgICAiICAgIG1v diAgJTAsJSVlZGkgICAgICAgICAgICAgICAgXG4iCi0gICAgIiAgICByZXAgIG1vdnNiICAgICAg ICAgICAgICAgICAgIFxuIgotICAgICAgIDogIj0mciIgKG5ldyksICIrYyIgKGJ5dGVzKSwgIitT IiAob2xkKQotCTogOiAiZWR4IiwgImVkaSIsICJtZW1vcnkiKTsKLSAgICByZXR1cm4gbmV3Owor CisgICAgYWxsb2MgLT0gQUxJR05fVVAoYnl0ZXMsIDE2KTsKKyAgICBuZXcgPSAodm9pZCAqKWFs bG9jOworCisgICAgd2hpbGUgKCBieXRlcy0tICkKKyAgICAgICAgKihjaGFyICopbmV3KysgPSAq KGNoYXIgKilvbGQrKzsKKworICAgIHJldHVybiAodm9pZCAqKWFsbG9jOwogfQogCiBzdGF0aWMg Y2hhciAqcmVsb2NfbWJpX3N0cmluZyhjaGFyICpvbGQpCkBAIC01OCwxMSArNTIsMTUgQEAgc3Rh dGljIGNoYXIgKnJlbG9jX21iaV9zdHJpbmcoY2hhciAqb2xkKQogICAgIHJldHVybiByZWxvY19t Ymlfc3RydWN0KG9sZCwgcCAtIG9sZCArIDEpOwogfQogCi1tdWx0aWJvb3RfaW5mb190ICpyZWxv YyhtdWx0aWJvb3RfaW5mb190ICptYmlfb2xkKQorbXVsdGlib290X2luZm9fdCBfX3N0ZGNhbGwg KnJlbG9jKG11bHRpYm9vdF9pbmZvX3QgKm1iaV9vbGQsIHUzMiB0cmFtcG9saW5lKQogewotICAg IG11bHRpYm9vdF9pbmZvX3QgKm1iaSA9IHJlbG9jX21iaV9zdHJ1Y3QobWJpX29sZCwgc2l6ZW9m KCptYmkpKTsKKyAgICBtdWx0aWJvb3RfaW5mb190ICptYmk7CiAgICAgaW50IGk7CiAKKyAgICBh bGxvYyA9IHRyYW1wb2xpbmU7CisKKyAgICBtYmkgPSByZWxvY19tYmlfc3RydWN0KG1iaV9vbGQs IHNpemVvZigqbWJpKSk7CisKICAgICBpZiAoIG1iaS0+ZmxhZ3MgJiBNQklfQ01ETElORSApCiAg ICAgICAgIG1iaS0+Y21kbGluZSA9ICh1MzIpcmVsb2NfbWJpX3N0cmluZygoY2hhciAqKW1iaS0+ Y21kbGluZSk7CiAKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==