From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v3 07/25] x86emul: support AVX2 gather insns Date: Thu, 1 Feb 2018 20:53:47 +0000 Message-ID: References: <5A29550C020000780019585B@prv-mh.provo.novell.com> <5A29584702000078001958A3@prv-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.84_2) (envelope-from ) id 1ehLro-0000y5-65 for xen-devel@lists.xenproject.org; Thu, 01 Feb 2018 20:53:56 +0000 In-Reply-To: <5A29584702000078001958A3@prv-mh.provo.novell.com> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Jan Beulich , xen-devel Cc: George Dunlap List-Id: xen-devel@lists.xenproject.org T24gMDcvMTIvMTcgMTQ6MDMsIEphbiBCZXVsaWNoIHdyb3RlOgo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKPiBAQCAtMzkxLDYgKzM5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgewo+ICAgICAgWzB4NzggLi4uIDB4NzldID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwg LnR3b19vcCA9IDEgfSwKPiAgICAgIFsweDhjXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIg fSwKPiAgICAgIFsweDhlXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50b19tZW0gPSAx IH0sCj4gKyAgICBbMHg5MCAuLi4gMHg5M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAu dnNpYiA9IDEgfSwKPiAgICAgIFsweDk2IC4uLiAweDlmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ZwIH0sCj4gICAgICBbMHhhNiAuLi4gMHhhZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9mcCB9LAo+ICAgICAgWzB4YjYgLi4uIDB4YmZdID0geyAuc2ltZF9zaXplID0gc2lt ZF9wYWNrZWRfZnAgfSwKPiBAQCAtNTk4LDYgKzU5OSw3IEBAIHN0cnVjdCB4ODZfZW11bGF0ZV9z dGF0ZSB7Cj4gICAgICAgICAgZXh0XzhmMGEsCj4gICAgICB9IGV4dDsKPiAgICAgIHVpbnQ4X3Qg bW9kcm0sIG1vZHJtX21vZCwgbW9kcm1fcmVnLCBtb2RybV9ybTsKPiArICAgIHVpbnQ4X3Qgc2li X2luZGV4LCBzaWJfc2NhbGU7Cj4gICAgICB1aW50OF90IHJleF9wcmVmaXg7Cj4gICAgICBib29s IGxvY2tfcHJlZml4Owo+ICAgICAgYm9vbCBub3RfNjRiaXQ7IC8qIEluc3RydWN0aW9uIG5vdCBh dmFpbGFibGUgaW4gNjRiaXQuICovCj4gQEAgLTI0MTEsNyArMjQxMyw3IEBAIHg4Nl9kZWNvZGUo Cj4gICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCwKPiAgICAgIGNvbnN0IHN0cnVj dCB4ODZfZW11bGF0ZV9vcHMgICpvcHMpCj4gIHsKPiAtICAgIHVpbnQ4X3QgYiwgZCwgc2liLCBz aWJfaW5kZXgsIHNpYl9iYXNlOwo+ICsgICAgdWludDhfdCBiLCBkOwo+ICAgICAgdW5zaWduZWQg aW50IGRlZl9vcF9ieXRlcywgZGVmX2FkX2J5dGVzLCBvcGNvZGU7Cj4gICAgICBlbnVtIHg4Nl9z ZWdtZW50IG92ZXJyaWRlX3NlZyA9IHg4Nl9zZWdfbm9uZTsKPiAgICAgIGJvb2wgcGNfcmVsID0g ZmFsc2U7Cj4gQEAgLTI3NDUsNiArMjc0Nyw3IEBAIHg4Nl9kZWNvZGUoCj4gIAo+ICAgICAgICAg IGlmICggbW9kcm1fbW9kID09IDMgKQo+ICAgICAgICAgIHsKPiArICAgICAgICAgICAgZ2VuZXJh dGVfZXhjZXB0aW9uX2lmKGQgJiB2U0lCLCBFWENfVUQpOwo+ICAgICAgICAgICAgICBtb2RybV9y bSB8PSAocmV4X3ByZWZpeCAmIDEpIDw8IDM7Cj4gICAgICAgICAgICAgIGVhLnR5cGUgPSBPUF9S RUc7Cj4gICAgICAgICAgfQo+IEBAIC0yODA1LDEzICsyODA4LDE3IEBAIHg4Nl9kZWNvZGUoCj4g ICAgICAgICAgICAgIGVhLnR5cGUgPSBPUF9NRU07Cj4gICAgICAgICAgICAgIGlmICggbW9kcm1f cm0gPT0gNCApCj4gICAgICAgICAgICAgIHsKPiAtICAgICAgICAgICAgICAgIHNpYiA9IGluc25f ZmV0Y2hfdHlwZSh1aW50OF90KTsKPiAtICAgICAgICAgICAgICAgIHNpYl9pbmRleCA9ICgoc2li ID4+IDMpICYgNykgfCAoKHJleF9wcmVmaXggPDwgMikgJiA4KTsKPiAtICAgICAgICAgICAgICAg IHNpYl9iYXNlICA9IChzaWIgJiA3KSB8ICgocmV4X3ByZWZpeCA8PCAzKSAmIDgpOwo+IC0gICAg ICAgICAgICAgICAgaWYgKCBzaWJfaW5kZXggIT0gNCAmJiAhKGQgJiB2U0lCKSApCj4gLSAgICAg ICAgICAgICAgICAgICAgZWEubWVtLm9mZiA9ICpkZWNvZGVfcmVnaXN0ZXIoc2liX2luZGV4LCBz dGF0ZS0+cmVncywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmYWxzZSk7Cj4gLSAgICAgICAgICAgICAgICBlYS5tZW0ub2ZmIDw8PSAoc2liID4+ IDYpICYgMzsKPiArICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2liID0gaW5zbl9mZXRjaF90eXBl KHVpbnQ4X3QpOwo+ICsgICAgICAgICAgICAgICAgdWludDhfdCBzaWJfYmFzZSA9IChzaWIgJiA3 KSB8ICgocmV4X3ByZWZpeCA8PCAzKSAmIDgpOwo+ICsKPiArICAgICAgICAgICAgICAgIHN0YXRl LT5zaWJfaW5kZXggPSAoKHNpYiA+PiAzKSAmIDcpIHwgKChyZXhfcHJlZml4IDw8IDIpICYgOCk7 Cj4gKyAgICAgICAgICAgICAgICBzdGF0ZS0+c2liX3NjYWxlID0gKHNpYiA+PiA2KSAmIDM7Cj4g KyAgICAgICAgICAgICAgICBpZiAoIHN0YXRlLT5zaWJfaW5kZXggIT0gNCAmJiAhKGQgJiB2U0lC KSApCj4gKyAgICAgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICAgICAgZWEubWVtLm9m ZiA9ICpkZWNvZGVfcmVnaXN0ZXIoc3RhdGUtPnNpYl9pbmRleCwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+cmVncywgZmFsc2UpOwo+ ICsgICAgICAgICAgICAgICAgICAgIGVhLm1lbS5vZmYgPDw9IHN0YXRlLT5zaWJfc2NhbGU7CgpU aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuCgo+ICsgICAgICAgICAgICAgICAgfQo+ICAgICAg ICAgICAgICAgICAgaWYgKCAobW9kcm1fbW9kID09IDApICYmICgoc2liX2Jhc2UgJiA3KSA9PSA1 KSApCj4gICAgICAgICAgICAgICAgICAgICAgZWEubWVtLm9mZiArPSBpbnNuX2ZldGNoX3R5cGUo aW50MzJfdCk7Cj4gICAgICAgICAgICAgICAgICBlbHNlIGlmICggc2liX2Jhc2UgPT0gNCApCj4g QEAgLTc0NzIsNiArNzQ3OSwxMTAgQEAgeDg2X2VtdWxhdGUoCj4gICAgICAgICAgYnJlYWs7Cj4g ICAgICB9Cj4gIAo+ICsgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDkwKTog LyogdnBnYXRoZXJke2QscX0ge3gseX1tbSxtZW0se3gseX1tbSAqLwo+ICsgICAgY2FzZSBYODZF TVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDkxKTogLyogdnBnYXRoZXJxe2QscX0ge3gseX1tbSxt ZW0se3gseX1tbSAqLwo+ICsgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDky KTogLyogdmdhdGhlcmRwe3MsZH0ge3gseX1tbSxtZW0se3gseX1tbSAqLwo+ICsgICAgY2FzZSBY ODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweDkzKTogLyogdmdhdGhlcnFwe3MsZH0ge3gseX1t bSxtZW0se3gseX1tbSAqLwo+ICsgICAgewo+ICsgICAgICAgIHVuc2lnbmVkIGludCBtYXNrX3Jl ZyA9IH52ZXgucmVnICYgKG1vZGVfNjRiaXQoKSA/IDB4ZiA6IDcpOwo+ICsgICAgICAgIHR5cGVv Zih2ZXgpICpwdmV4Owo+ICsgICAgICAgIHVuaW9uIHsKPiArICAgICAgICAgICAgaW50MzJfdCBk d1s4XTsKPiArICAgICAgICAgICAgaW50NjRfdCBxd1s0XTsKPiArICAgICAgICB9IGluZGV4LCBt YXNrOwo+ICsKPiArICAgICAgICBBU1NFUlQoZWEudHlwZSA9PSBPUF9NRU0pOwo+ICsgICAgICAg IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihtb2RybV9yZWcgPT0gc3RhdGUtPnNpYl9pbmRleCB8fAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RybV9yZWcgPT0gbWFza19yZWcgfHwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnNpYl9pbmRleCA9PSBtYXNr X3JlZywgRVhDX1VEKTsKPiArICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWNwdV9oYXNf YXZ4LCBFWENfVUQpOwo+ICsgICAgICAgIHZjcHVfbXVzdF9oYXZlKGF2eDIpOwo+ICsgICAgICAg IGdldF9mcHUoWDg2RU1VTF9GUFVfeW1tLCAmZmljKTsKPiArCj4gKyAgICAgICAgLyogUmVhZCBk ZXN0aW5hdGlvbiwgaW5kZXgsIGFuZCBtYXNrIHJlZ2lzdGVycy4gKi8KPiArICAgICAgICBvcGMg PSBpbml0X3ByZWZpeGVzKHN0dWIpOwo+ICsgICAgICAgIHB2ZXggPSBjb3B5X1ZFWChvcGMsIHZl eCk7Cj4gKyAgICAgICAgcHZleC0+b3BjeCA9IHZleF8wZjsKPiArICAgICAgICBvcGNbMF0gPSAw eDdmOyAvKiB2bW92ZHFhICovCj4gKyAgICAgICAgLyogVXNlICglcmF4KSBhcyBkZXN0aW5hdGlv biBhbmQgbW9kcm1fcmVnIGFzIHNvdXJjZS4gKi8KPiArICAgICAgICBwdmV4LT5yID0gIW1vZGVf NjRiaXQoKSB8fCAhKG1vZHJtX3JlZyAmIDgpOwo+ICsgICAgICAgIHB2ZXgtPmIgPSAxOwo+ICsg ICAgICAgIG9wY1sxXSA9IChtb2RybV9yZWcgJiA3KSA8PCAzOwo+ICsgICAgICAgIHB2ZXgtPnJl ZyA9IDB4ZjsKPiArICAgICAgICBvcGNbMl0gPSAweGMzOwo+ICsKPiArICAgICAgICBpbnZva2Vf c3R1YigiIiwgIiIsICI9bSIgKCptbXZhbHApIDogImEiIChtbXZhbHApKTsKPiArCj4gKyAgICAg ICAgcHZleC0+cGZ4ID0gdmV4X2YzOyAvKiB2bW92ZHF1ICovCj4gKyAgICAgICAgLyogU3dpdGNo IHRvIHNpYl9pbmRleCBhcyBzb3VyY2UuICovCj4gKyAgICAgICAgcHZleC0+ciA9ICFtb2RlXzY0 Yml0KCkgfHwgIShzdGF0ZS0+c2liX2luZGV4ICYgOCk7Cj4gKyAgICAgICAgb3BjWzFdID0gKHN0 YXRlLT5zaWJfaW5kZXggJiA3KSA8PCAzOwo+ICsKPiArICAgICAgICBpbnZva2Vfc3R1YigiIiwg IiIsICI9bSIgKGluZGV4KSA6ICJhIiAoJmluZGV4KSk7Cj4gKwo+ICsgICAgICAgIC8qIFN3aXRj aCB0byBtYXNrX3JlZyBhcyBzb3VyY2UuICovCj4gKyAgICAgICAgcHZleC0+ciA9ICFtb2RlXzY0 Yml0KCkgfHwgIShtYXNrX3JlZyAmIDgpOwo+ICsgICAgICAgIG9wY1sxXSA9IChtYXNrX3JlZyAm IDcpIDw8IDM7Cj4gKwo+ICsgICAgICAgIGludm9rZV9zdHViKCIiLCAiIiwgIj1tIiAobWFzaykg OiAiYSIgKCZtYXNrKSk7Cj4gKyAgICAgICAgcHV0X3N0dWIoc3R1Yik7Cj4gKwo+ICsgICAgICAg IC8qIENsZWFyIHVudG91Y2hlZCBwYXJ0cyBvZiB0aGUgZGVzdGluYXRpb24gYW5kIG1hc2sgdmFs dWVzLiAqLwo+ICsgICAgICAgIG4gPSAxIDw8ICgyICsgdmV4LmwgLSAoKGIgJiAxKSB8IHZleC53 KSk7Cj4gKyAgICAgICAgb3BfYnl0ZXMgPSA0IDw8IHZleC53Owo+ICsgICAgICAgIG1lbXNldCgo dm9pZCAqKW1tdmFscCArIG4gKiBvcF9ieXRlcywgMCwgMzIgLSBuICogb3BfYnl0ZXMpOwo+ICsg ICAgICAgIG1lbXNldCgodm9pZCAqKSZtYXNrICsgbiAqIG9wX2J5dGVzLCAwLCAzMiAtIG4gKiBv cF9ieXRlcyk7Cj4gKwo+ICsgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbiAmJiByYyA9PSBYODZF TVVMX09LQVk7ICsraSApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBpZiAoICh2ZXgudyA/ IG1hc2sucXdbaV0gOiBtYXNrLmR3W2ldKSA8IDAgKQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAg ICAgICAgICAgICBzaWduZWQgbG9uZyBpZHggPSBiICYgMSA/IGluZGV4LnF3W2ldIDogaW5kZXgu ZHdbaV07Cj4gKwo+ICsgICAgICAgICAgICAgICAgcmMgPSBvcHMtPnJlYWQoZWEubWVtLnNlZywK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVhLm1lbS5vZmYgKyAoaWR4IDw8IHN0 YXRlLT5zaWJfc2NhbGUpLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQg KiltbXZhbHAgKyBpICogb3BfYnl0ZXMsIG9wX2J5dGVzLCBjdHh0KTsKPiArICAgICAgICAgICAg ICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgICAgICAgICBicmVh azsKPiArCj4gKyNpZmRlZiBfX1hFTl9fCj4gKyAgICAgICAgICAgICAgICBpZiAoIGkgKyAxIDwg biAmJiBsb2NhbF9ldmVudHNfbmVlZF9kZWxpdmVyeSgpICkKPiArICAgICAgICAgICAgICAgICAg ICByYyA9IFg4NkVNVUxfUkVUUlk7Cj4gKyNlbmRpZgo+ICsgICAgICAgICAgICB9Cj4gKwo+ICsg ICAgICAgICAgICBpZiAoIHZleC53ICkKPiArICAgICAgICAgICAgICAgIG1hc2sucXdbaV0gPSAw Owo+ICsgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICBtYXNrLmR3W2ldID0gMDsK PiArICAgICAgICB9CgpUaGUgaW5jb21wbGV0ZSBjYXNlIGhlcmUgaXMgcmF0aGVyIG1vcmUgY29t cGxpY2F0ZWQuwqAgSW4gdGhlIGNhc2UgdGhhdApyYyAhPSBPSyBhbmQgbG9jYWwgZXZlbnRzIGFy ZSBwZW5kaW5nLCBSRiBuZWVkcyBzZXR0aW5nLCBhbHRob3VnaCBpdCBpcwpub3QgY2xlYXIgaWYg dGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgaWYgYW4gZXhjZXB0aW9uIGlzIHBlbmRpbmcsIG9yCmJl dHdlZW4gZXZlcnkgZWxlbWVudC4KCj4gKwo+ICsgICAgICAgIC8qIFdyaXRlIGRlc3RpbmF0aW9u IGFuZCBtYXNrIHJlZ2lzdGVycy4gKi8KPiArICAgICAgICBvcGMgPSBpbml0X3ByZWZpeGVzKHN0 dWIpOwo+ICsgICAgICAgIHB2ZXggPSBjb3B5X1ZFWChvcGMsIHZleCk7Cj4gKyAgICAgICAgcHZl eC0+b3BjeCA9IHZleF8wZjsKPiArICAgICAgICBvcGNbMF0gPSAweDZmOyAvKiB2bW92ZHFhICov Cj4gKyAgICAgICAgLyogVXNlIG1vZHJtX3JlZyBhcyBkZXN0aW5hdGlvbiBhbmQgKCVyYXgpIGFz IHNvdXJjZS4gKi8KPiArICAgICAgICBwdmV4LT5yID0gIW1vZGVfNjRiaXQoKSB8fCAhKG1vZHJt X3JlZyAmIDgpOwo+ICsgICAgICAgIHB2ZXgtPmIgPSAxOwo+ICsgICAgICAgIG9wY1sxXSA9ICht b2RybV9yZWcgJiA3KSA8PCAzOwo+ICsgICAgICAgIHB2ZXgtPnJlZyA9IDB4ZjsKPiArICAgICAg ICBvcGNbMl0gPSAweGMzOwo+ICsKPiArICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIsICIrbSIg KCptbXZhbHApIDogImEiIChtbXZhbHApKTsKPiArCj4gKyAgICAgICAgcHZleC0+cGZ4ID0gdmV4 X2YzOyAvKiB2bW92ZHF1ICovCj4gKyAgICAgICAgLyogU3dpdGNoIHRvIG1hc2tfcmVnIGFzIGRl c3RpbmF0aW9uLiAqLwo+ICsgICAgICAgIHB2ZXgtPnIgPSAhbW9kZV82NGJpdCgpIHx8ICEobWFz a19yZWcgJiA4KTsKPiArICAgICAgICBvcGNbMV0gPSAobWFza19yZWcgJiA3KSA8PCAzOwo+ICsK PiArICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIsICIrbSIgKG1hc2spIDogImEiICgmbWFzaykp Owo+ICsgICAgICAgIHB1dF9zdHViKHN0dWIpOwo+ICsKPiArICAgICAgICBzdGF0ZS0+c2ltZF9z aXplID0gc2ltZF9ub25lOwo+ICsgICAgICAgIGJyZWFrOwo+ICsgICAgfQo+ICsKPiAgICAgIGNh c2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwgMHg5Nik6IC8qIHZmbWFkZHN1YjEzMnB7cyxk fSB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KPiAgICAgIGNhc2UgWDg2RU1VTF9PUENf VkVYXzY2KDB4MGYzOCwgMHg5Nyk6IC8qIHZmbXN1YmFkZDEzMnB7cyxkfSB7eCx5fW1tL21lbSx7 eCx5fW1tLHt4LHl9bW0gKi8KPiAgICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwg MHg5OCk6IC8qIHZmbWFkZDEzMnB7cyxkfSB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8K PiAtLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni94 ODZfZW11bGF0ZS5jCj4gQEAgLTEwLDYgKzEwLDcgQEAKPiAgICovCj4gIAo+ICAjaW5jbHVkZSA8 eGVuL2RvbWFpbl9wYWdlLmg+Cj4gKyNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KClNwdXJpb3VzIGh1 bms/Cgp+QW5kcmV3Cgo+ICAjaW5jbHVkZSA8YXNtL3g4Nl9lbXVsYXRlLmg+Cj4gICNpbmNsdWRl IDxhc20vYXNtX2RlZm5zLmg+IC8qIG1hcmtfcmVnc19kaXJ0eSgpICovCj4gICNpbmNsdWRlIDxh c20vcHJvY2Vzc29yLmg+IC8qIGN1cnJlbnRfY3B1X2luZm8gKi8KPgo+CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==