From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 08/44] x86emul: use AVX512 logic for emulating V{, P}MASKMOV* Date: Tue, 25 Sep 2018 07:30:37 -0600 Message-ID: <5BAA387D02000078001EB9F5@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g4nQL-0005ZH-Nq for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:30:45 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu List-Id: xen-devel@lists.xenproject.org VGhlIG1vcmUgZ2VuZXJpYyBBVlg1MTIgaW1wbGVtZW50YXRpb24gYWxsb3dzIHF1aXRlIGEgYml0 IG9mIGluc24tCnNwZWNpZmljIGNvZGUgdG8gYmUgZHJvcHBlZC9zaGFyZWQuCgpTaWduZWQtb2Zm LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgotLS0gYS94ZW4vYXJjaC94ODYv eDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv eDg2X2VtdWxhdGUuYwpAQCAtNDM5LDggKzQzOSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0 MGYzOF90YWJsZSB7CiAgICAgWzB4MjggLi4uIDB4MjldID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50IH0sCiAgICAgWzB4MmFdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50 LCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDJiXSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfcGFja2VkX2ludCB9LAotICAgIFsweDJjIC4uLiAweDJkXSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfb3RoZXIgfSwKLSAgICBbMHgyZSAuLi4gMHgyZl0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX290aGVyLCAudG9fbWVtID0gMSB9LAorICAgIFsweDJjIC4uLiAweDJkXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0sCisgICAgWzB4MmUgLi4uIDB4MmZdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfZnAsIC50b19tZW0gPSAxIH0sCiAgICAgWzB4MzAgLi4uIDB4MzVd ID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwKICAgICBbMHgzNiAu Li4gMHgzZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKICAgICBbMHg0MF0g PSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKQEAgLTQ0OSw4ICs0NDksOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmMzhfdGFibGUgewogICAgIFsweDU4IC4uLiAweDU5XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3AgPSAxIH0sCiAgICAgWzB4NWFdID0g eyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC50d29fb3AgPSAxIH0sCiAgICAgWzB4NzggLi4uIDB4 NzldID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwKLSAgICBbMHg4 Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyIH0sCi0gICAgWzB4OGVdID0geyAuc2ltZF9z aXplID0gc2ltZF9vdGhlciwgLnRvX21lbSA9IDEgfSwKKyAgICBbMHg4Y10gPSB7IC5zaW1kX3Np emUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKKyAgICBbMHg4ZV0gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQsIC50b19tZW0gPSAxIH0sCiAgICAgWzB4OTAgLi4uIDB4OTNdID0geyAuc2lt ZF9zaXplID0gc2ltZF9vdGhlciwgLnZzaWIgPSAxIH0sCiAgICAgWzB4OTYgLi4uIDB4OThdID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAgfSwKICAgICBbMHg5OV0gPSB7IC5zaW1kX3Np emUgPSBzaW1kX3NjYWxhcl92ZXh3IH0sCkBAIC03OTg0LDYgKzc5ODQsOCBAQCB4ODZfZW11bGF0 ZSgKIAogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZWEudHlwZSAhPSBPUF9NRU0gfHwg dmV4LncsIEVYQ19VRCk7CiAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eCk7Cisg ICAgICAgIGVsZW1fYnl0ZXMgPSA0IDw8IChiICYgMSk7CisgICAgdm1hc2ttb3Y6CiAgICAgICAg IGdldF9mcHUoWDg2RU1VTF9GUFVfeW1tKTsKIAogICAgICAgICAvKgpAQCAtNzk5OCw3ICs4MDAw LDcgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIG9wYyA9IGluaXRfcHJlZml4ZXMoc3R1Yik7CiAg ICAgICAgIHB2ZXggPSBjb3B5X1ZFWChvcGMsIHZleCk7CiAgICAgICAgIHB2ZXgtPm9wY3ggPSB2 ZXhfMGY7Ci0gICAgICAgIGlmICggIShiICYgMSkgKQorICAgICAgICBpZiAoIGVsZW1fYnl0ZXMg PT0gNCApCiAgICAgICAgICAgICBwdmV4LT5wZnggPSB2ZXhfbm9uZTsKICAgICAgICAgb3BjWzBd ID0gMHg1MDsgLyogdm1vdm1za3B7cyxkfSAqLwogICAgICAgICAvKiBVc2UgJXJheCBhcyBHUFIg ZGVzdGluYXRpb24gYW5kIFZFWC52dnZ2IGFzIHNvdXJjZS4gKi8KQEAgLTgwMTEsMjEgKzgwMTMs OSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgaW52b2tlX3N0dWIoIiIsICIiLCAiPWEiIChlYS52 YWwpIDogW2R1bW15XSAiaSIgKDApKTsKICAgICAgICAgcHV0X3N0dWIoc3R1Yik7CiAKLSAgICAg ICAgaWYgKCAhZWEudmFsICkKLSAgICAgICAgICAgIGdvdG8gY29tcGxldGVfaW5zbjsKLQotICAg ICAgICBvcF9ieXRlcyA9IDQgPDwgKGIgJiAxKTsKLSAgICAgICAgZmlyc3RfYnl0ZSA9IF9fYnVp bHRpbl9jdHooZWEudmFsKTsKLSAgICAgICAgZWEudmFsID4+PSBmaXJzdF9ieXRlOwotICAgICAg ICBmaXJzdF9ieXRlICo9IG9wX2J5dGVzOwotICAgICAgICBvcF9ieXRlcyAqPSAzMiAtIF9fYnVp bHRpbl9jbHooZWEudmFsKTsKLQotICAgICAgICAvKgotICAgICAgICAgKiBFdmVuIGZvciB0aGUg bWVtb3J5IHdyaXRlIHZhcmlhbnQgYSBtZW1vcnkgcmVhZCBpcyBuZWVkZWQsIHVubGVzcwotICAg ICAgICAgKiBhbGwgc2V0IG1hc2sgYml0cyBhcmUgY29udGlndW91cy4KLSAgICAgICAgICovCi0g ICAgICAgIGlmICggZWEudmFsICYgKGVhLnZhbCArIDEpICkKLSAgICAgICAgICAgIGQgPSAoZCAm IH5TcmNNYXNrKSB8IFNyY01lbTsKKyAgICAgICAgZXZleC5vcG1zayA9IDE7IC8qIGZha2UgKi8K KyAgICAgICAgb3BfbWFzayA9IGVhLnZhbDsKKyAgICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSB0 cnVlOwogCiAgICAgICAgIG9wYyA9IGluaXRfcHJlZml4ZXMoc3R1Yik7CiAgICAgICAgIG9wY1sw XSA9IGI7CkBAIC04MDc2LDYzICs4MDY2LDEwIEBAIHg4Nl9lbXVsYXRlKAogCiAgICAgY2FzZSBY ODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDhjKTogLyogdnBtYXNrbW92e2QscX0gbWVtLHt4 LHl9bW0se3gseX1tbSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwgMHg4 ZSk6IC8qIHZwbWFza21vdntkLHF9IHt4LHl9bW0se3gseX1tbSxtZW0gKi8KLSAgICB7Ci0gICAg ICAgIHR5cGVvZih2ZXgpICpwdmV4OwotICAgICAgICB1bnNpZ25lZCBpbnQgbWFzayA9IHZleC53 ID8gMHg4MDgwODA4MFUgOiAweDg4ODg4ODg4VTsKLQogICAgICAgICBnZW5lcmF0ZV9leGNlcHRp b25faWYoZWEudHlwZSAhPSBPUF9NRU0sIEVYQ19VRCk7CiAgICAgICAgIGhvc3RfYW5kX3ZjcHVf bXVzdF9oYXZlKGF2eDIpOwotICAgICAgICBnZXRfZnB1KFg4NkVNVUxfRlBVX3ltbSk7Ci0KLSAg ICAgICAgLyoKLSAgICAgICAgICogV2hpbGUgd2UgY2FuJ3QgcmVhc29uYWJseSBwcm92aWRlIGZ1 bGx5IGNvcnJlY3QgYmVoYXZpb3IgaGVyZQotICAgICAgICAgKiAoaW4gcGFydGljdWxhciwgZm9y IHdyaXRlcywgYXZvaWRpbmcgdGhlIG1lbW9yeSByZWFkIGluIGFudGljaXBhdGlvbgotICAgICAg ICAgKiBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHJhbmdlIGV2ZW50dWFsbHkgYmVpbmcgd3JpdHRl biksIHdlIGNhbiAoYW5kCi0gICAgICAgICAqIHNob3VsZCkgc3RpbGwgbGltaXQgdGhlIG1lbW9y eSBhY2Nlc3MgdG8gdGhlIHNtYWxsZXN0IHBvc3NpYmxlIHJhbmdlCi0gICAgICAgICAqIChzdXBw cmVzc2luZyBpdCBhbHRvZ2V0aGVyIGlmIGFsbCBtYXNrIGJpdHMgYXJlIGNsZWFyKSwgdG8gcHJv dmlkZQotICAgICAgICAgKiBjb3JyZWN0IGZhdWx0aW5nIGJlaGF2aW9yLiBSZWFkIHRoZSBtYXNr IGJpdHMgdmlhIHZtb3Ztc2twe3MsZH0KLSAgICAgICAgICogZm9yIHRoYXQgcHVycG9zZS4KLSAg ICAgICAgICovCi0gICAgICAgIG9wYyA9IGluaXRfcHJlZml4ZXMoc3R1Yik7Ci0gICAgICAgIHB2 ZXggPSBjb3B5X1ZFWChvcGMsIHZleCk7Ci0gICAgICAgIHB2ZXgtPm9wY3ggPSB2ZXhfMGY7Ci0g ICAgICAgIG9wY1swXSA9IDB4ZDc7IC8qIHZwbW92bXNrYiAqLwotICAgICAgICAvKiBVc2UgJXJh eCBhcyBHUFIgZGVzdGluYXRpb24gYW5kIFZFWC52dnZ2IGFzIHNvdXJjZS4gKi8KLSAgICAgICAg cHZleC0+ciA9IDE7Ci0gICAgICAgIHB2ZXgtPmIgPSAhbW9kZV82NGJpdCgpIHx8ICh2ZXgucmVn ID4+IDMpOwotICAgICAgICBvcGNbMV0gPSAweGMwIHwgKH52ZXgucmVnICYgNyk7Ci0gICAgICAg IHB2ZXgtPnJlZyA9IDB4ZjsKLSAgICAgICAgb3BjWzJdID0gMHhjMzsKLQotICAgICAgICBpbnZv a2Vfc3R1YigiIiwgIiIsICI9YSIgKGVhLnZhbCkgOiBbZHVtbXldICJpIiAoMCkpOwotICAgICAg ICBwdXRfc3R1YihzdHViKTsKLQotICAgICAgICAvKiBDb252ZXJ0IGJ5dGUgZ3JhbnVsYXIgcmVz dWx0IHRvIGR3b3JkL3F3b3JkIGdyYW51bGFyaXR5LiAqLwotICAgICAgICBlYS52YWwgJj0gbWFz azsKLSAgICAgICAgaWYgKCAhZWEudmFsICkKLSAgICAgICAgICAgIGdvdG8gY29tcGxldGVfaW5z bjsKLQotICAgICAgICBmaXJzdF9ieXRlID0gX19idWlsdGluX2N0eihlYS52YWwpICYgfigoNCA8 PCB2ZXgudykgLSAxKTsKLSAgICAgICAgZWEudmFsID4+PSBmaXJzdF9ieXRlOwotICAgICAgICBv cF9ieXRlcyA9IDMyIC0gX19idWlsdGluX2NseihlYS52YWwpOwotCi0gICAgICAgIC8qCi0gICAg ICAgICAqIEV2ZW4gZm9yIHRoZSBtZW1vcnkgd3JpdGUgdmFyaWFudCBhIG1lbW9yeSByZWFkIGlz IG5lZWRlZCwgdW5sZXNzCi0gICAgICAgICAqIGFsbCBzZXQgbWFzayBiaXRzIGFyZSBjb250aWd1 b3VzLgotICAgICAgICAgKi8KLSAgICAgICAgaWYgKCBlYS52YWwgJiAoZWEudmFsICsgfm1hc2sg KyAxKSApCi0gICAgICAgICAgICBkID0gKGQgJiB+U3JjTWFzaykgfCBTcmNNZW07Ci0KLSAgICAg ICAgb3BjID0gaW5pdF9wcmVmaXhlcyhzdHViKTsKLSAgICAgICAgb3BjWzBdID0gYjsKLSAgICAg ICAgLyogQ29udmVydCBtZW1vcnkgb3BlcmFuZCB0byAoJXJBWCkuICovCi0gICAgICAgIHJleF9w cmVmaXggJj0gflJFWF9COwotICAgICAgICB2ZXguYiA9IDE7Ci0gICAgICAgIG9wY1sxXSA9IG1v ZHJtICYgMHgzODsKLSAgICAgICAgaW5zbl9ieXRlcyA9IFBGWF9CWVRFUyArIDI7Ci0KLSAgICAg ICAgYnJlYWs7Ci0gICAgfQorICAgICAgICBlbGVtX2J5dGVzID0gNCA8PCB2ZXgudzsKKyAgICAg ICAgZ290byB2bWFza21vdjsKIAogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwg MHg5MCk6IC8qIHZwZ2F0aGVyZHtkLHF9IHt4LHl9bW0sbWVtLHt4LHl9bW0gKi8KICAgICBjYXNl IFg4NkVNVUxfT1BDX1ZFWF82NigweDBmMzgsIDB4OTEpOiAvKiB2cGdhdGhlcnF7ZCxxfSB7eCx5 fW1tLG1lbSx7eCx5fW1tICovCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs