Re: master: arm64-arch.c: Fix soft-simulation of some instructions.

Stas Boukarev <[email protected]> Wed, 20 May 2026 21:29:01 +0300
Newsgroups gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel
Message-ID <CAF63=11Bu16w3+y1kg+n0PA-b-3ZH12Eys1cjQyUPQmbWAn_RA@mail.gmail.com>
Ojo6IFJ1bm5pbmcgKFRSQUNFIDpFTkNBUFNVTEFURSBOSUwpCmZhdGFsIGVycm9yIGVuY291bnRl
cmVkIGluIFNCQ0wgcGlkIDU1MjEyNTUxODQ6ClVuc3VwcG9ydGVkIExEUiAobGl0ZXJhbCkgdmFy
aWFudC4KMDogMDAwMDAyOTFjYWFhMTkzOCBwYz0wMDAwMDAxMDAwMTgxZWQwIHswMDAwMDAxMDAw
MTgxZGMwKzAxMTB9ClNCLURJOjpCUkVBS1BPSU5ULURPLURJU1BMQUNFRC1JTlNUCjE6IDAwMDAw
MjkxY2FhYTE5MjggcGM9MDAwMDdmZjc1MzEwNTllMAoyOiAwMDAwMDI5MWNhYWExOTAwIHBjPTAw
MDAwMDEwMDE5ZDc1ZTAgezAwMDAwMDEwMDE5ZDc1ODArMDA2MH0KQ0wtVVNFUjo6VFJBQ0UtVEhJ
UwoKT24gV2VkLCBNYXkgMjAsIDIwMjYgYXQgMToxNOKAr1BNIGFwYWNoZS0tLSB2aWEgU2JjbC1j
b21taXRzCjxzYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0PiB3cm90ZToKPgo+IFRo
ZSBicmFuY2ggIm1hc3RlciIgaGFzIGJlZW4gdXBkYXRlZCBpbiBTQkNMOgo+ICAgICAgICB2aWEg
IGY5ODI0NzViMGJjYjZkNjkxY2YxNzI2MzBmYWQ5YzE0MDg3Mzc4YjIgKGNvbW1pdCkKPiAgICAg
ICBmcm9tICAwN2Y4MmQzNTkxNzkwMGZlMTIyMjg5MTU3OWMyZmU5ZDNkOGRmM2M0IChjb21taXQp
Cj4KPiAtIExvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQo+IGNvbW1pdCBmOTgyNDc1YjBiY2I2ZDY5MWNmMTcyNjMwZmFk
OWMxNDA4NzM3OGIyCj4gQXV0aG9yOiBDaGFybGVzIFpoYW5nIDxjaGFybGVzemhhbmc5OUB5YWhv
by5jb20+Cj4gRGF0ZTogICBUdWUgTWFyIDE3IDE1OjE4OjIwIDIwMjYgKzAxMDAKPgo+ICAgICBh
cm02NC1hcmNoLmM6IEZpeCBzb2Z0LXNpbXVsYXRpb24gb2Ygc29tZSBpbnN0cnVjdGlvbnMuCj4K
PiAgICAgRm9yIGJyZWFrcG9pbnQgc3VwcG9ydC4KPiAtLS0KPiAgc3JjL3J1bnRpbWUvYXJtNjQt
YXJjaC5jIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t
LS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkK
Pgo+IGRpZmYgLS1naXQgYS9zcmMvcnVudGltZS9hcm02NC1hcmNoLmMgYi9zcmMvcnVudGltZS9h
cm02NC1hcmNoLmMKPiBpbmRleCA5MTgzMDEzZmUuLmU5ZThkM2FmMSAxMDA2NDQKPiAtLS0gYS9z
cmMvcnVudGltZS9hcm02NC1hcmNoLmMKPiArKysgYi9zcmMvcnVudGltZS9hcm02NC1hcmNoLmMK
PiBAQCAtODgsMjAgKzg4LDM1IEBAIGNvbmRpdGlvbl9ob2xkcyhvc19jb250ZXh0X3QgKmNvbnRl
eHQsIHVuc2lnbmVkIGludCBjb25kKQo+ICB7Cj4gICAgICBpbnQgZmxhZ3MgPSAqb3NfY29udGV4
dF9mbGFnc19hZGRyKGNvbnRleHQpOwo+ICAgICAgYm9vbCByZXN1bHQ7Cj4gLSAgICAvLyBFdmFs
dWF0ZSBiYXNlIGNvbmRpdGlvbi4KPiAtICAgIHN3aXRjaCAoY29uZCkgewo+IC0gICAgY2FzZSAw
YjAwMDogcmVzdWx0ID0gKChmbGFncyA+PiBaX0JJVCkgJiAxKTsKPiAtICAgIGNhc2UgMGIwMDE6
IHJlc3VsdCA9ICgoZmxhZ3MgPj4gQ19CSVQpICYgMSk7Cj4gLSAgICBjYXNlIDBiMDEwOiByZXN1
bHQgPSAoKGZsYWdzID4+IE5fQklUKSAmIDEpOwo+IC0gICAgY2FzZSAwYjAxMTogcmVzdWx0ID0g
KChmbGFncyA+PiBWX0JJVCkgJiAxKTsKPiAtICAgIGNhc2UgMGIxMDA6IHJlc3VsdCA9ICgoZmxh
Z3MgPj4gVl9CSVQpICYgMSkgJiYgfigoZmxhZ3MgPj4gWl9CSVQpICYgMSk7Cj4gLSAgICBjYXNl
IDBiMTAxOiByZXN1bHQgPSAoKGZsYWdzID4+IE5fQklUKSA9PSAoZmxhZ3MgPj4gVl9CSVQpKTsK
PiAtICAgIGNhc2UgMGIxMTA6IHJlc3VsdCA9ICgoZmxhZ3MgPj4gTl9CSVQpID09IChmbGFncyA+
PiBWX0JJVCkpICYmICEoKGZsYWdzID4+IFpfQklUKSAmIDEpOwo+IC0gICAgY2FzZSAwYjExMTog
cmVzdWx0ID0gMTsKPiArICAgIC8vIEV2YWx1YXRlIGJhc2UgY29uZGl0aW9uIChpZ25vcmluZyB0
aGUgaW52ZXJzaW9uIGJpdCkuCj4gKyAgICBzd2l0Y2ggKGNvbmQgPj4gMSkgewo+ICsgICAgY2Fz
ZSAwYjAwMDoKPiArICAgICAgcmVzdWx0ID0gKGZsYWdzID4+IFpfQklUKSAmIDE7Cj4gKyAgICAg
IGJyZWFrOwo+ICsgICAgY2FzZSAwYjAwMToKPiArICAgICAgcmVzdWx0ID0gKGZsYWdzID4+IENf
QklUKSAmIDE7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSAwYjAxMDoKPiArICAgICAgcmVz
dWx0ID0gKGZsYWdzID4+IE5fQklUKSAmIDE7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSAw
YjAxMTogcmVzdWx0ID0gKGZsYWdzID4+IFZfQklUKSAmIDE7Cj4gKyAgICAgIGJyZWFrOwo+ICsg
ICAgY2FzZSAwYjEwMDoKPiArICAgICAgcmVzdWx0ID0gKChmbGFncyA+PiBDX0JJVCkgJiAxKSAm
JiAhKChmbGFncyA+PiBaX0JJVCkgJiAxKTsKPiArICAgICAgYnJlYWs7Cj4gKyAgICBjYXNlIDBi
MTAxOgo+ICsgICAgICByZXN1bHQgPSAoKGZsYWdzID4+IE5fQklUKSAmIDEpID09ICgoZmxhZ3Mg
Pj4gVl9CSVQpICYgMSk7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSAwYjExMDoKPiArICAg
ICAgcmVzdWx0ID0gKChmbGFncyA+PiBOX0JJVCkgJiAxKSA9PSAoKGZsYWdzID4+IFZfQklUKSAm
IDEpICYmICEoKGZsYWdzID4+IFpfQklUKSAmIDEpOwo+ICsgICAgICBicmVhazsKPiArICAgIGRl
ZmF1bHQ6Cj4gKyAgICAgIHJlc3VsdCA9IDE7Cj4gKyAgICAgIGJyZWFrOwo+ICAgICAgfQo+Cj4g
LSAgICAvLyBDb25kaXRpb24gZmxhZyB2YWx1ZXMgaW4gdGhlIHNldCAnMTExeCcgaW5kaWNhdGUg
YWx3YXlzIHRydWUKPiAtICAgIC8vIE90aGVyd2lzZSwgaW52ZXJ0IGNvbmRpdGlvbiBpZiBuZWNl
c3NhcnkuCj4gKyAgICAvLyBDb25kaXRpb24gZmxhZyB2YWx1ZXMgaW4gdGhlIHNldCAnMTExeCcg
aW5kaWNhdGUgYWx3YXlzIHRydWUuCj4gKyAgICAvLyBPdGhlcndpc2UsIGludmVydCBjb25kaXRp
b24gaWYgdGhlIGxvdyBiaXQgaXMgc2V0Lgo+ICAgICAgaWYgKChjb25kICYgMGIxKSAmJiAoY29u
ZCAhPSAwYjExMTEpKQo+ICAgICAgICAgIHJlc3VsdCA9ICFyZXN1bHQ7Cj4KPiBAQCAtMTU4LDEy
ICsxNzMsMTAgQEAgdm9pZCBhcmNoX2RvX2Rpc3BsYWNlZF9pbnN0KG9zX2NvbnRleHRfdCAqY29u
dGV4dCwgdW5zaWduZWQgaW50IG9yaWdfaW5zdCkKPiAgICAgIH0KPiAgICAgIGVsc2UgaWYgKCgo
b3JpZ19pbnN0ID4+IDI1KSAmIDBiMTExMTExKSA9PSAwYjAxMTAxMCkgewo+ICAgICAgICAgIC8v
IENvbXBhcmUgYnJhbmNoIGltbQo+IC0gICAgICAgIGJvb2wgc2l6ZV9pc182NCA9IChvcmlnX2lu
c3QgPj4gMzEpICYgMGIxOwo+ICAgICAgICAgIGJvb2wgb3AgPSAob3JpZ19pbnN0ID4+IDI0KSAm
IDBiMTsKPiAgICAgICAgICBpbnQgb2Zmc2V0ID0gc2lnbl9leHRlbmQoKG9yaWdfaW5zdCA+PiA1
KSAmIH4oMSA8PCAxOSksIDE5KTsKPiAgICAgICAgICBpbnQgcnQgPSBvcmlnX2luc3QgJiAwYjEx
MTExOwo+IC0gICAgICAgIGlmICghc2l6ZV9pc182NCkgbG9zZSgiU2l6ZSBtdXN0IGJlIDY0IGJp
dHMuIik7Cj4gLSAgICAgICAgaWYgKCpvc19jb250ZXh0X3JlZ2lzdGVyX2FkZHIoY29udGV4dCwg
cnQpIF4gb3ApCj4gKyAgICAgICAgaWYgKCghKm9zX2NvbnRleHRfcmVnaXN0ZXJfYWRkcihjb250
ZXh0LCBydCkpIF4gb3ApCj4gICAgICAgICAgICAgIG5leHRfcGMgKz0gb2Zmc2V0Owo+ICAgICAg
ICAgIGVsc2UKPiAgICAgICAgICAgICAgbmV4dF9wYyArPSAxOwo+IEBAIC0xNzMsMzIgKzE4Niwz
NCBAQCB2b2lkIGFyY2hfZG9fZGlzcGxhY2VkX2luc3Qob3NfY29udGV4dF90ICpjb250ZXh0LCB1
bnNpZ25lZCBpbnQgb3JpZ19pbnN0KQo+ICAgICAgICAgIGJvb2wgYjUgPSAob3JpZ19pbnN0ID4+
IDMxKSAmIDBiMTsKPiAgICAgICAgICBib29sIG9wID0gKG9yaWdfaW5zdCA+PiAyNCkgJiAwYjE7
Cj4gICAgICAgICAgYm9vbCBiNDAgPSAob3JpZ19pbnN0ID4+IDE5KSAmIDBiMTExMTE7Cj4gLSAg
ICAgICAgaW50IGJpdF9wb3MgPSAoYjUgPDwgNikgfCBiNDA7Cj4gKyAgICAgICAgaW50IGJpdF9w
b3MgPSAoYjUgPDwgNSkgfCBiNDA7Cj4gICAgICAgICAgaW50IG9mZnNldCA9IHNpZ25fZXh0ZW5k
KChvcmlnX2luc3QgPj4gNSkgJiB+KDEgPDwgMTQpLCAxNCk7Cj4gICAgICAgICAgaW50IHJ0ID0g
b3JpZ19pbnN0ICYgMGIxMTExMTsKPiAtICAgICAgICBpZiAoIWI1KSBsb3NlKCJiNSBtdXN0IGJl
IDY0IGJpdHMuIik7Cj4gICAgICAgICAgaWYgKCgoKm9zX2NvbnRleHRfcmVnaXN0ZXJfYWRkcihj
b250ZXh0LCBydCkgPj4gYml0X3BvcykgJiAwYjEpIF4gb3ApCj4gICAgICAgICAgICAgIG5leHRf
cGMgKz0gb2Zmc2V0Owo+ICAgICAgICAgIGVsc2UKPiAgICAgICAgICAgICAgbmV4dF9wYyArPSAx
Owo+ICAgICAgfQo+IC0gICAgZWxzZSBpZiAoKChvcmlnX2luc3QgPj4gMzEpICYgMGIxKSA9PSAw
YjApIHsKPiArICAgIGVsc2UgaWYgKCgob3JpZ19pbnN0ID4+IDI0KSAmIDBiMTExMTEpID09IDBi
MTEwMDApIHsKPiAgICAgICAgICAvLyBMRFIgKGxpdGVyYWwpCj4gLSAgICAgICAgYm9vbCBzaXpl
X2lzXzY0ID0gKG9yaWdfaW5zdCA+PiAzMCkgJiAwYjE7Cj4gKyAgICAgICAgaW50IG9wYyA9IChv
cmlnX2luc3QgPj4gMzApICYgMGIxMTsKPiAgICAgICAgICBpbnQgcnQgPSBvcmlnX2luc3QgJiAw
YjExMTExOwo+ICAgICAgICAgIGludCBvZmZzZXQgPSBzaWduX2V4dGVuZCgob3JpZ19pbnN0ID4+
IDUpICYgfigxIDw8IDE5KSwgMTkpOwo+IC0gICAgICAgIGlmICghc2l6ZV9pc182NCkgbG9zZSgi
U2l6ZSBtdXN0IGJlIDY0IGJpdHMuIik7Cj4gLSAgICAgICAgKm9zX2NvbnRleHRfcmVnaXN0ZXJf
YWRkcihjb250ZXh0LCBydCkgPSAqKChsaXNwb2JqKikocGMgKyBvZmZzZXQpKTsKPiArICAgICAg
ICBpZiAob3BjID09IDBiMDEpCj4gKyAgICAgICAgICAqb3NfY29udGV4dF9yZWdpc3Rlcl9hZGRy
KGNvbnRleHQsIHJ0KSA9ICooKHVpbnQ2NF90ICopKHBjICsgb2Zmc2V0KSk7Cj4gKyAgICAgICAg
ZWxzZSBpZiAob3BjID09IDBiMDApCj4gKyAgICAgICAgICAqb3NfY29udGV4dF9yZWdpc3Rlcl9h
ZGRyKGNvbnRleHQsIHJ0KSA9ICooKHVpbnQzMl90ICopKHBjICsgb2Zmc2V0KSk7Cj4gKyAgICAg
ICAgZWxzZQo+ICsgICAgICAgICAgbG9zZSgiVW5zdXBwb3J0ZWQgTERSIChsaXRlcmFsKSB2YXJp
YW50LiIpOwo+ICAgICAgICAgIG5leHRfcGMgKz0gMTsKPiAgICAgIH0KPiAgICAgIGVsc2UgaWYg
KCgob3JpZ19pbnN0ID4+IDI0KSAmIDBiMTExMTEpID09IDBiMTAwMDApIHsKPiAgICAgICAgICAv
LyBBRFIoUCkKPiAgICAgICAgICBib29sIG9wID0gKG9yaWdfaW5zdCA+PiAzMSkgJiAwYjE7Cj4g
ICAgICAgICAgaW50IHJkID0gb3JpZ19pbnN0ICYgMGIxMTExMTsKPiAtICAgICAgICBpbnQgaW1t
ID0gc2lnbl9leHRlbmQoKChvcmlnX2luc3QgPj4gNSkgJiB+KDEgPDwgMTkpKSB8Cj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgob3JpZ19pbnN0ID4+IDI5KSAmIH4oMSA8PCAyKSks
IDIxKTsKPiArICAgICAgICBpbnQgaW1tID0gc2lnbl9leHRlbmQoKChvcmlnX2luc3QgPj4gMykg
JiAweDFGRkZGQykgfCAoKG9yaWdfaW5zdCA+PiAyOSkgJiAzKSwgMjEpOwo+ICAgICAgICAgIGlm
IChvcCkgLy8gQURSUAo+IC0gICAgICAgICAgICAqb3NfY29udGV4dF9yZWdpc3Rlcl9hZGRyKGNv
bnRleHQsIHJkKSA9ICgodXdvcmRfdClwYyAmIH4oMSA8PCAxMikpICsgKGltbSA8PCAxMik7Cj4g
KyAgICAgICAgICAgICpvc19jb250ZXh0X3JlZ2lzdGVyX2FkZHIoY29udGV4dCwgcmQpID0gKCh1
d29yZF90KXBjICYgfih1d29yZF90KTB4RkZGKSArICgoc3dvcmRfdClpbW0gPDwgMTIpOwo+ICAg
ICAgICAgIGVsc2UgLy8gQURSCj4gICAgICAgICAgICAgICpvc19jb250ZXh0X3JlZ2lzdGVyX2Fk
ZHIoY29udGV4dCwgcmQpID0gKHV3b3JkX3QpcGMgKyBpbW07Cj4gICAgICAgICAgbmV4dF9wYyAr
PSAxOwo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj4gaG9va3MvcG9zdC1yZWNlaXZlCj4gLS0KPiBT
QkNMCj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Cj4gU2JjbC1jb21taXRzIG1haWxpbmcgbGlzdAo+IFNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vm
b3JnZS5uZXQKPiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9z
YmNsLWNvbW1pdHMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpTYmNsLWNvbW1pdHMgbWFpbGluZyBsaXN0ClNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vm
b3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2Jj
bC1jb21taXRzCg==