From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v4 04/19] x86/boot/reloc: reduce assembly usage as much as possible Date: Sat, 6 Aug 2016 01:04:27 +0200 Message-ID: <1470438282-4226-5-git-send-email-daniel.kiper@oracle.com> References: <1470438282-4226-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 1bVoBJ-000313-5E for xen-devel@lists.xenproject.org; Fri, 05 Aug 2016 23:05:33 +0000 In-Reply-To: <1470438282-4226-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, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org TmV4dCBwYXRjaCB3aWxsIGxlYXZlIGp1c3QgcmVxdWlyZWQgam1wIGluc3RydWN0aW9uCmluIHhl bi94ODYvYm9vdC9yZWxvYy5jLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwu a2lwZXJAb3JhY2xlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9idWlsZDMyLmxkcyB8ICAg IDEgKwogeGVuL2FyY2gveDg2L2Jvb3QvYnVpbGQzMi5tayAgfCAgICAyICstCiB4ZW4vYXJjaC94 ODYvYm9vdC9yZWxvYy5jICAgICB8ICAgNTIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvYnVpbGQzMi5sZHMgYi94ZW4v YXJjaC94ODYvYm9vdC9idWlsZDMyLmxkcwppbmRleCBiMTRjN2Q1Li5hNjU4Y2E4IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvYm9vdC9idWlsZDMyLmxkcworKysgYi94ZW4vYXJjaC94ODYvYm9v dC9idWlsZDMyLmxkcwpAQCAtMjQsNiArMjQsNyBAQCBTRUNUSU9OUwogICAgICAgICAqKC50ZXh0 KQogICAgICAgICAqKC50ZXh0LiopCiAgICAgICAgICooLnJvZGF0YSkKKyAgICAgICAgKiguYnNz KQogICB9CiAKICAgL0RJU0NBUkQvIDogewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3Qv YnVpbGQzMi5tayBiL3hlbi9hcmNoL3g4Ni9ib290L2J1aWxkMzIubWsKaW5kZXggZWIwMmI0Yi4u ZDU0ZDI1OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvYnVpbGQzMi5taworKysgYi94 ZW4vYXJjaC94ODYvYm9vdC9idWlsZDMyLm1rCkBAIC0yMyw3ICsyMyw3IEBAIENGTEFHUyA6PSAk KGZpbHRlci1vdXQgLWZsdG8sJChDRkxBR1MpKQogCSQoT0JKRFVNUCkgLWggJDwgfCBzZWQgLW4g Jy9bMC05XS97cywwMCosMCxnO3A7fScgfFwKIAkJd2hpbGUgcmVhZCBpZHggbmFtZSBzeiByZXN0 OyBkbyBcCiAJCQljYXNlICIkJG5hbWUiIGluIFwKLQkJCS5kYXRhfC5kYXRhLip8LnJvZGF0YS4q fC5ic3N8LmJzcy4qKSBcCisJCQkuZGF0YXwuZGF0YS4qfC5yb2RhdGEuKnwuYnNzLiopIFwKIAkJ CQl0ZXN0ICQkc3ogIT0gMCB8fCBjb250aW51ZTsgXAogCQkJCWVjaG8gIkVycm9yOiBub24tZW1w dHkgJCRuYW1lOiAweCQkc3oiID4mMjsgXAogCQkJCWV4aXQgJCQoZXhwciAkJGlkeCArIDEpOzsg XApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYyBiL3hlbi9hcmNoL3g4Ni9i b290L3JlbG9jLmMKaW5kZXggNjMwNDVjMC4uOWFlNDJlMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2Jvb3QvcmVsb2MuYworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCkBAIC0xNSwz OSArMTUsMzMgQEAgYXNtICgKICAgICAiICAgIC50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgogICAgICIgICAgLmdsb2JsIF9zdGFydCAgICAgICAgICAgICAgICAgXG4iCiAgICAgIl9z dGFydDogICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSAgICAiICAgIGNhbGwgMWYgICAg ICAgICAgICAgICAgICAgICAgIFxuIgotICAgICIxOiAgcG9wICAlZWJ4ICAgICAgICAgICAgICAg ICAgICAgXG4iCi0gICAgIiAgICBtb3YgICVlYXgsYWxsb2MtMWIoJWVieCkgICAgICBcbiIKLSAg ICAiICAgIGptcCAgcmVsb2MgICAgICAgICAgICAgICAgICAgIFxuIgotICAgICk7Ci0KLS8qCi0g KiBUaGlzIGlzIG91ciBkYXRhLiBCZWNhdXNlIHRoZSBjb2RlIG11c3QgYmUgcmVsb2NhdGFibGUs IG5vIEJTUyBpcwotICogYWxsb3dlZC4gQWxsIGRhdGEgaXMgYWNjZXNzZWQgUEMtcmVsYXRpdmUg d2l0aCBpbmxpbmUgYXNzZW1ibHkuCi0gKi8KLWFzbSAoCi0gICAgImFsbG9jOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLSAgICAiICAgIC5sb25nIDAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorICAgICIgICAgcHVzaCAlZWF4ICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAg IiAgICBwdXNoIDB4OCglZXNwKSAgICAgICAgICAgICAgICBcbiIKKyAgICAiICAgIGNhbGwgcmVs b2MgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgcmV0ICAkMHg0ICAgICAgICAgICAg ICAgICAgICAgXG4iCiAgICAgKTsKIAogdHlwZWRlZiB1bnNpZ25lZCBpbnQgdTMyOwogI2luY2x1 ZGUgIi4uLy4uLy4uL2luY2x1ZGUveGVuL211bHRpYm9vdC5oIgogCisjZGVmaW5lIF9fc3RkY2Fs bAlfX2F0dHJpYnV0ZV9fKChfX3N0ZGNhbGxfXykpCisKKyNkZWZpbmUgQUxJR05fVVAoYXJnLCBh bGlnbikgXAorICAgICAgICAgICAgICAgICgoKGFyZykgKyAoYWxpZ24pIC0gMSkgJiB+KCh0eXBl b2YoYXJnKSkoYWxpZ24pIC0gMSkpCisKK3N0YXRpYyB1MzIgYWxsb2M7CisKIHN0YXRpYyB2b2lk ICpyZWxvY19tYmlfc3RydWN0KHZvaWQgKm9sZCwgdW5zaWduZWQgaW50IGJ5dGVzKQogewogICAg IHZvaWQgKm5ldzsKLSAgICBhc20oCi0gICAgIiAgICBjYWxsIDFmICAgICAgICAgICAgICAgICAg ICAgIFxuIgotICAgICIxOiAgcG9wICAlJWVkeCAgICAgICAgICAgICAgICAgICBcbiIKLSAgICAi ICAgIG1vdiAgYWxsb2MtMWIoJSVlZHgpLCUwICAgICAgXG4iCi0gICAgIiAgICBzdWIgICUxLCUw ICAgICAgICAgICAgICAgICAgIFxuIgotICAgICIgICAgYW5kICAkfjE1LCUwICAgICAgICAgICAg ICAgICBcbiIKLSAgICAiICAgIG1vdiAgJTAsYWxsb2MtMWIoJSVlZHgpICAgICAgXG4iCi0gICAg IiAgICBtb3YgICUwLCUlZWRpICAgICAgICAgICAgICAgIFxuIgotICAgICIgICAgcmVwICBtb3Zz YiAgICAgICAgICAgICAgICAgICBcbiIKLSAgICAgICA6ICI9JnIiIChuZXcpLCAiK2MiIChieXRl cyksICIrUyIgKG9sZCkKLQk6IDogImVkeCIsICJlZGkiLCAibWVtb3J5Iik7Ci0gICAgcmV0dXJu IG5ldzsKKworICAgIGFsbG9jIC09IEFMSUdOX1VQKGJ5dGVzLCAxNik7CisgICAgbmV3ID0gKHZv aWQgKilhbGxvYzsKKworICAgIHdoaWxlICggYnl0ZXMtLSApCisgICAgICAgICooY2hhciAqKW5l dysrID0gKihjaGFyICopb2xkKys7CisKKyAgICByZXR1cm4gKHZvaWQgKilhbGxvYzsKIH0KIAog c3RhdGljIGNoYXIgKnJlbG9jX21iaV9zdHJpbmcoY2hhciAqb2xkKQpAQCAtNTgsMTEgKzUyLDE1 IEBAIHN0YXRpYyBjaGFyICpyZWxvY19tYmlfc3RyaW5nKGNoYXIgKm9sZCkKICAgICByZXR1cm4g cmVsb2NfbWJpX3N0cnVjdChvbGQsIHAgLSBvbGQgKyAxKTsKIH0KIAotbXVsdGlib290X2luZm9f dCAqcmVsb2MobXVsdGlib290X2luZm9fdCAqbWJpX29sZCkKK211bHRpYm9vdF9pbmZvX3QgX19z dGRjYWxsICpyZWxvYyhtdWx0aWJvb3RfaW5mb190ICptYmlfb2xkLCB1MzIgdHJhbXBvbGluZSkK IHsKLSAgICBtdWx0aWJvb3RfaW5mb190ICptYmkgPSByZWxvY19tYmlfc3RydWN0KG1iaV9vbGQs IHNpemVvZigqbWJpKSk7CisgICAgbXVsdGlib290X2luZm9fdCAqbWJpOwogICAgIGludCBpOwog CisgICAgYWxsb2MgPSB0cmFtcG9saW5lOworCisgICAgbWJpID0gcmVsb2NfbWJpX3N0cnVjdCht Ymlfb2xkLCBzaXplb2YoKm1iaSkpOworCiAgICAgaWYgKCBtYmktPmZsYWdzICYgTUJJX0NNRExJ TkUgKQogICAgICAgICBtYmktPmNtZGxpbmUgPSAodTMyKXJlbG9jX21iaV9zdHJpbmcoKGNoYXIg KiltYmktPmNtZGxpbmUpOwogCi0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=