From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/3] tests/x86emul: Save and restore FPU state in the emulator callbacks Date: Tue, 6 Mar 2018 20:24:51 +0000 Message-ID: <1520367892-15055-3-git-send-email-andrew.cooper3@citrix.com> References: <1520367892-15055-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520367892-15055-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5IHdpdGggdGhlbiBuYXRpdmUgdG9vbGNoYWluIG9uIERlYmlhbiBKZXNzaWUgLi90 ZXN0X3g4Nl9lbXVsYXRvcgp5ZWlsZHM6CgogIFRlc3RpbmcgQVZYMiAyNTZiaXQgc2luZ2xlIG5h dGl2ZSBleGVjdXRpb24uLi5va2F5CiAgVGVzdGluZyBBVlgyIDI1NmJpdCBzaW5nbGUgNjQtYml0 IGNvZGUgc2VxdWVuY2UuLi5bbGluZSA5MzNdIGZhaWxlZCEKClRoZSBidWcgaXMgdGhhdCBsaWJj J3MgbWVtY3B5KCkgaW4gcmVhZCgpIHVzZXMgJXhtbTggKHNwZWNpZmljYWxseSwgaW4KX19tZW1j cHlfc3NlMl91bmFsaWduZWQoKSksIHdoaWNoIGNvcnJ1cHRzICV5bW04IGJlaGluZCB0aGUgYmFj ayBvZiB0aGUgQVZYMgp0ZXN0IGNvZGUuCgpTd2l0Y2ggYWxsIGhvb2tzIHRvIHVzZSAiZ290byBv dXQiIHN0eWxlIHJldHVybnMsIGFuZCB1c2UKZW11bF97c2F2ZSxyZXN0b3JlfV9mcHVfc3RhdGUo KS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0KIHRvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jIHwgOTQgKysrKysrKysrKysrKysr KysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9l bXVsYXRvci5jIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMK aW5kZXggNjI1Y2QyYS4uYTc2NGQ5OSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxh dG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rl c3RfeDg2X2VtdWxhdG9yLmMKQEAgLTIyNiw2ICsyMjYsMTAgQEAgc3RhdGljIGludCByZWFkKAog ICAgIHVuc2lnbmVkIGludCBieXRlcywKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4 dCkKIHsKKyAgICBpbnQgcmMgPSBYODZFTVVMX09LQVk7CisKKyAgICBlbXVsX3NhdmVfZnB1X3N0 YXRlKCk7CisKICAgICBpZiAoIHZlcmJvc2UgKQogICAgICAgICBwcmludGYoIioqICVzKCV1LCAl cCwsICV1LClcbiIsIF9fZnVuY19fLCBzZWcsICh2b2lkICopb2Zmc2V0LCBieXRlcyk7CiAKQEAg LTIzNiw0MiArMjQwLDYxIEBAIHN0YXRpYyBpbnQgcmVhZCgKICAgICBjYXNlIHg4Nl9zZWdfZ2R0 cjoKICAgICAgICAgLyogRmFrZSBzeXN0ZW0gc2VnbWVudCB0eXBlIG1hdGNoaW5nIHRhYmxlIGlu ZGV4LiAqLwogICAgICAgICBpZiAoIChvZmZzZXQgJiA3KSB8fCAoYnl0ZXMgPiA4KSApCi0gICAg ICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgIHsKKyAgICAgICAg ICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAg ICAgICAgfQogI2lmZGVmIF9feDg2XzY0X18KICAgICAgICAgaWYgKCAhKG9mZnNldCAmIDgpICkK ICAgICAgICAgewogICAgICAgICAgICAgbWVtc2V0KHBfZGF0YSwgMCwgYnl0ZXMpOwotICAgICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKyAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAg ICB9CiAgICAgICAgIHZhbHVlID0gKG9mZnNldCAtIDgpID4+IDQ7CiAjZWxzZQogICAgICAgICB2 YWx1ZSA9IChvZmZzZXQgLSA4KSA+PiAzOwogI2VuZGlmCiAgICAgICAgIGlmICggdmFsdWUgPj0g MHgxMCApCi0gICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAg IHsKKyAgICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgICAgICBn b3RvIG91dDsKKyAgICAgICAgfQogICAgICAgICB2YWx1ZSB8PSB2YWx1ZSA8PCA0MDsKICAgICAg ICAgbWVtY3B5KHBfZGF0YSwgJnZhbHVlLCBieXRlcyk7Ci0gICAgICAgIHJldHVybiBYODZFTVVM X09LQVk7CisgICAgICAgIGdvdG8gb3V0OwogCiAgICAgY2FzZSB4ODZfc2VnX2xkdHI6CiAgICAg ICAgIC8qIEZha2UgdXNlciBzZWdtZW50IHR5cGUgbWF0Y2hpbmcgdGFibGUgaW5kZXguICovCiAg ICAgICAgIGlmICggKG9mZnNldCAmIDcpIHx8IChieXRlcyA+IDgpICkKLSAgICAgICAgICAgIHJl dHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSBY ODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CiAg ICAgICAgIHZhbHVlID0gb2Zmc2V0ID4+IDM7CiAgICAgICAgIGlmICggdmFsdWUgPj0gMHgxMCAp Ci0gICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgIHsKKyAg ICAgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgICAgICBnb3RvIG91 dDsKKyAgICAgICAgfQogICAgICAgICB2YWx1ZSB8PSAodmFsdWUgfCAweDEwKSA8PCA0MDsKICAg ICAgICAgbWVtY3B5KHBfZGF0YSwgJnZhbHVlLCBieXRlcyk7Ci0gICAgICAgIHJldHVybiBYODZF TVVMX09LQVk7CisgICAgICAgIGdvdG8gb3V0OwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYg KCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKLSAgICAgICAgICAgIHJldHVybiBYODZFTVVM X1VOSEFORExFQUJMRTsKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSBYODZFTVVMX1VOSEFO RExFQUJMRTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CiAgICAgICAgIGJ5dGVz X3JlYWQgKz0gYnl0ZXM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBtZW1jcHkocF9kYXRh LCAodm9pZCAqKW9mZnNldCwgYnl0ZXMpOwotICAgIHJldHVybiBYODZFTVVMX09LQVk7CisKKyBv dXQ6CisgICAgZW11bF9yZXN0b3JlX2ZwdV9zdGF0ZSgpOworCisgICAgcmV0dXJuIHJjOwogfQog CiBzdGF0aWMgaW50IGZldGNoKApAQCAtMjgxLDEwICszMDQsMTUgQEAgc3RhdGljIGludCBmZXRj aCgKICAgICB1bnNpZ25lZCBpbnQgYnl0ZXMsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg KmN0eHQpCiB7CisgICAgZW11bF9zYXZlX2ZwdV9zdGF0ZSgpOworCiAgICAgaWYgKCB2ZXJib3Nl ICkKICAgICAgICAgcHJpbnRmKCIqKiAlcygldSwgJXAsLCAldSwpXG4iLCBfX2Z1bmNfXywgc2Vn LCAodm9pZCAqKW9mZnNldCwgYnl0ZXMpOwogCiAgICAgbWVtY3B5KHBfZGF0YSwgKHZvaWQgKilv ZmZzZXQsIGJ5dGVzKTsKKworICAgIGVtdWxfcmVzdG9yZV9mcHVfc3RhdGUoKTsKKwogICAgIHJl dHVybiBYODZFTVVMX09LQVk7CiB9CiAKQEAgLTI5NSwxMyArMzIzLDI1IEBAIHN0YXRpYyBpbnQg d3JpdGUoCiAgICAgdW5zaWduZWQgaW50IGJ5dGVzLAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9j dHh0ICpjdHh0KQogeworICAgIGludCByYyA9IFg4NkVNVUxfT0tBWTsKKworICAgIGVtdWxfc2F2 ZV9mcHVfc3RhdGUoKTsKKwogICAgIGlmICggdmVyYm9zZSApCiAgICAgICAgIHByaW50ZigiKiog JXMoJXUsICVwLCwgJXUsKVxuIiwgX19mdW5jX18sIHNlZywgKHZvaWQgKilvZmZzZXQsIGJ5dGVz KTsKIAogICAgIGlmICggIWlzX3g4Nl91c2VyX3NlZ21lbnQoc2VnKSApCi0gICAgICAgIHJldHVy biBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICB7CisgICAgICAgIHJjID0gWDg2RU1VTF9VTkhB TkRMRUFCTEU7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKwogICAgIG1lbWNweSgodm9pZCAq KW9mZnNldCwgcF9kYXRhLCBieXRlcyk7Ci0gICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKworIG91 dDoKKyAgICBlbXVsX3Jlc3RvcmVfZnB1X3N0YXRlKCk7CisKKyAgICByZXR1cm4gcmM7CiB9CiAK IHN0YXRpYyBpbnQgY21weGNoZygKQEAgLTMxMiwxMyArMzUyLDI1IEBAIHN0YXRpYyBpbnQgY21w eGNoZygKICAgICB1bnNpZ25lZCBpbnQgYnl0ZXMsCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpCiB7CisgICAgaW50IHJjID0gWDg2RU1VTF9PS0FZOworCisgICAgZW11bF9zYXZl X2ZwdV9zdGF0ZSgpOworCiAgICAgaWYgKCB2ZXJib3NlICkKICAgICAgICAgcHJpbnRmKCIqKiAl cygldSwgJXAsLCAldSwpXG4iLCBfX2Z1bmNfXywgc2VnLCAodm9pZCAqKW9mZnNldCwgYnl0ZXMp OwogCiAgICAgaWYgKCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKLSAgICAgICAgcmV0dXJu IFg4NkVNVUxfVU5IQU5ETEVBQkxFOworICAgIHsKKyAgICAgICAgcmMgPSBYODZFTVVMX1VOSEFO RExFQUJMRTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCiAgICAgbWVtY3B5KCh2b2lkICop b2Zmc2V0LCBuZXcsIGJ5dGVzKTsKLSAgICByZXR1cm4gWDg2RU1VTF9PS0FZOworCisgb3V0Ogor ICAgIGVtdWxfcmVzdG9yZV9mcHVfc3RhdGUoKTsKKworICAgIHJldHVybiByYzsKIH0KIAogc3Rh dGljIGludCByZWFkX3NlZ21lbnQoCkBAIC0zMjYsMTEgKzM3OCwyMyBAQCBzdGF0aWMgaW50IHJl YWRfc2VnbWVudCgKICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqcmVnLAogICAgIHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogeworICAgIGludCByYyA9IFg4NkVNVUxfT0tBWTsK KworICAgIGVtdWxfc2F2ZV9mcHVfc3RhdGUoKTsKKwogICAgIGlmICggIWlzX3g4Nl91c2VyX3Nl Z21lbnQoc2VnKSApCi0gICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICB7 CisgICAgICAgIHJjID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgICAgIGdvdG8gb3V0Owor ICAgIH0KKwogICAgIG1lbXNldChyZWcsIDAsIHNpemVvZigqcmVnKSk7CiAgICAgcmVnLT5wID0g MTsKLSAgICByZXR1cm4gWDg2RU1VTF9PS0FZOworCisgb3V0OgorICAgIGVtdWxfcmVzdG9yZV9m cHVfc3RhdGUoKTsKKworICAgIHJldHVybiByYzsKIH0KIAogc3RhdGljIGludCByZWFkX21zcigK LS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==