Get the encodable ranges right for SAP-REF-{8, 16, 32}-C

Hayley Patton <[email protected]> Sun, 12 Jul 2026 12:56:01 +1000
Newsgroups gmane.lisp.steel-bank.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------1s1s4jemj9jXsDlY0fL8uOgN
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello again,

The VOPs for SAP-REF-{8,16,32}-C on arm64 don't quite get the encodable 
ranges right for scaled LDR/STR. In particular, the instructions scale 
the immediate by the element size, and not uniformly by 8 bytes as the 
current code assumes.

Something like this will fail to compile without this patch:

* (lambda (x) (sb-sys:sap-ref-8 x 4096))

debugger invoked on a SIMPLE-ERROR in thread
#<THREAD "main thread" RUNNING {10054A25D3}>:
   Invalid STR/LDR arguments: 1 #S(SB-ARM64-ASM::MEMORY-OPERAND
                                   :BASE #<SB-C:TN t1[NL1] :NORMAL>
                                   :OFFSET 4096
                                   :MODE :OFFSET)

LDR-STR-OFFSET-ENCODABLE already takes the element size as an optional 
argument, my patch just makes the SATISFIES types in the VOPs pass along 
the element size. Although I'm not so sure I have a pretty way of 
passing the size along, hence the kludge comment.

Thanks,
Hayley

--------------1s1s4jemj9jXsDlY0fL8uOgN
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Get-the-encodable-ranges-right-for-SAP-REF-8-16-32.patch"
Content-Disposition: attachment;
 filename*0="0001-Get-the-encodable-ranges-right-for-SAP-REF-8-16-32.patc";
 filename*1="h"
Content-Transfer-Encoding: base64

RnJvbSA3MGYyNDM0ZjcyZTFhYzY4MzBjMDYwYjA2M2IyNTVmYTdkMWE4OGU4IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlsZXkgUGF0dG9uIDx0aGVlbWFjc3NoaWJlQGdt
YWlsLmNvbT4KRGF0ZTogU2F0LCAxMSBKdWwgMjAyNiAxNTo0NDoyNSArMTAwMApTdWJqZWN0
OiBbUEFUQ0hdIEdldCB0aGUgZW5jb2RhYmxlIHJhbmdlcyByaWdodCBmb3IgU0FQLVJFRi17
OCwxNiwzMn0KCi0tLQogc3JjL2NvbXBpbGVyL2FybTY0L2luc3RzLmxpc3AgfCAgOCArKysr
KysrLQogc3JjL2NvbXBpbGVyL2FybTY0L3NhcC5saXNwICAgfCAzMCArKysrKysrKysrKysr
KystLS0tLS0tLS0tLS0tLS0KIHNyYy9jb21waWxlci9hcm02NC92bS5saXNwICAgIHwgIDMg
KysrCiAzIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL3NyYy9jb21waWxlci9hcm02NC9pbnN0cy5saXNwIGIvc3JjL2Nv
bXBpbGVyL2FybTY0L2luc3RzLmxpc3AKaW5kZXggNTg4OGZmNDIxLi45M2M1YjFkZmEgMTAw
NjQ0Ci0tLSBhL3NyYy9jb21waWxlci9hcm02NC9pbnN0cy5saXNwCisrKyBiL3NyYy9jb21w
aWxlci9hcm02NC9pbnN0cy5saXNwCkBAIC0xOSw3ICsxOSw5IEBACiAgICAgICAgICAgICBu
ZWdhdGl2ZS1hZGQtc3ViLWltbWVkaWF0ZS1wCiAgICAgICAgICAgICBlbmNvZGUtbG9naWNh
bC1pbW1lZGlhdGUgZml4bnVtLWVuY29kZS1sb2dpY2FsLWltbWVkaWF0ZQogICAgICAgICAg
ICAgbW92aS1pbW1lZGlhdGUtcAotICAgICAgICAgICAgbGRyLXN0ci1vZmZzZXQtZW5jb2Rh
YmxlIGxkcC1zdHAtb2Zmc2V0LXAKKyAgICAgICAgICAgIGxkci1zdHItb2Zmc2V0LWVuY29k
YWJsZSBsZHItc3RyLTgtb2Zmc2V0LWVuY29kYWJsZQorICAgICAgICAgICAgbGRyLXN0ci0x
Ni1vZmZzZXQtZW5jb2RhYmxlIGxkci1zdHItMzItb2Zmc2V0LWVuY29kYWJsZQorICAgICAg
ICAgICAgbGRwLXN0cC1vZmZzZXQtcAogICAgICAgICAgICAgZXh0ZW5kIGxzbCBsc3IgYXNy
IHJvciBAIGVuY29kZS1mcC1pbW1lZGlhdGUpICJTQi1WTSIpCiAgIDs7IEltcG9ydHMgZnJv
bSBTQi1WTSBpbnRvIHRoaXMgcGFja2FnZQogICAjK3NiLXNpbWQtcGFjawpAQCAtMTU0Nyw2
ICsxNTQ5LDEwIEBACiAgICAgICAobXVsdGlwbGUtdmFsdWUtYmluZCAocW91dCByZW0pICh0
cnVuY2F0ZSBvZmZzZXQgKHRydW5jYXRlIHNpemUgOCkpCiAgICAgICAgIChhbmQgKHplcm9w
IHJlbSkKICAgICAgICAgICAgICAodHlwZXAgcW91dCAnKHVuc2lnbmVkLWJ5dGUgMTIpKSkp
KSkKKzs7IGtsdWRnZSBmb3IgU0FUSVNGSUVTIHR5cGVzIGluIHNhcC5saXNwCisoZGVmdW4g
bGRyLXN0ci04LW9mZnNldC1lbmNvZGFibGUgKG9mZnNldCkgKGxkci1zdHItb2Zmc2V0LWVu
Y29kYWJsZSBvZmZzZXQgOCkpCisoZGVmdW4gbGRyLXN0ci0xNi1vZmZzZXQtZW5jb2RhYmxl
IChvZmZzZXQpIChsZHItc3RyLW9mZnNldC1lbmNvZGFibGUgb2Zmc2V0IDE2KSkKKyhkZWZ1
biBsZHItc3RyLTMyLW9mZnNldC1lbmNvZGFibGUgKG9mZnNldCkgKGxkci1zdHItb2Zmc2V0
LWVuY29kYWJsZSBvZmZzZXQgMzIpKQogCiAoZGVmdW4gZW1pdC1sb2FkLXN0b3JlIChzaXpl
IG9wYyBzZWdtZW50IGRzdCBhZGRyZXNzICZvcHRpb25hbCB2ZWN0b3Itc2l6ZSkKICAgKGxl
dCogKChiYXNlIChtZW1vcnktb3BlcmFuZC1iYXNlIGFkZHJlc3MpKQpkaWZmIC0tZ2l0IGEv
c3JjL2NvbXBpbGVyL2FybTY0L3NhcC5saXNwIGIvc3JjL2NvbXBpbGVyL2FybTY0L3NhcC5s
aXNwCmluZGV4IGM2ZmQwMjRjMy4uMGYxMDY5MmM2IDEwMDY0NAotLS0gYS9zcmMvY29tcGls
ZXIvYXJtNjQvc2FwLmxpc3AKKysrIGIvc3JjL2NvbXBpbGVyL2FybTY0L3NhcC5saXNwCkBA
IC0xNDYsNyArMTQ2LDcgQEAKIAoKIDs7OzsgbXVtYmxlLVNZU1RFTS1SRUYgYW5kIG11bWJs
ZS1TWVNURU0tU0VUCiAobWFjcm9sZXQgKChkZWYtc3lzdGVtLXJlZi1hbmQtc2V0Ci0gICAg
ICAgICAgICAgICAocmVmLW5hbWUgc2V0LW5hbWUgc2MgdHlwZSBzaXplICZrZXkgc2lnbmVk
KQorICAgICAgICAgICAgICAgKHJlZi1uYW1lIHNldC1uYW1lIHNjIHR5cGUgc2l6ZSBvZmZz
ZXQtdGVzdCAma2V5IHNpZ25lZCkKICAgICAgICAgICAgICBgKHByb2duCiAgICAgICAgICAg
ICAgICAgLEAod2hlbiAoaW1wbGVtZW50cy1jYXMtc2FwLXJlZiByZWYtbmFtZSkKICAgICAg
ICAgICAgICAgICAgICAgKG11bHRpcGxlLXZhbHVlLWJpbmQgKGxvYWQgc3RvcmUgY2FzKQpA
QCAtMjQ4LDcgKzI0OCw3IEBACiAgICAgICAgICAgICAgICAgICAoOnBvbGljeSA6ZmFzdC1z
YWZlKQogICAgICAgICAgICAgICAgICAgKDphcmdzIChzYXAgOnNjcyAoc2FwLXJlZykpKQog
ICAgICAgICAgICAgICAgICAgKDppbmZvIG9mZnNldCkKLSAgICAgICAgICAgICAgICAgICg6
YXJnLXR5cGVzIHN5c3RlbS1hcmVhLXBvaW50ZXIgKDpjb25zdGFudCAoc2F0aXNmaWVzIGxk
ci1zdHItb2Zmc2V0LWVuY29kYWJsZSkpKQorICAgICAgICAgICAgICAgICAgKDphcmctdHlw
ZXMgc3lzdGVtLWFyZWEtcG9pbnRlciAoOmNvbnN0YW50IChzYXRpc2ZpZXMgLG9mZnNldC10
ZXN0KSkpCiAgICAgICAgICAgICAgICAgICAoOlJFU1VMVFMgKHJlc3VsdCA6c2NzICgsc2Mp
KSkKICAgICAgICAgICAgICAgICAgICg6cmVzdWx0LXR5cGVzICx0eXBlKQogICAgICAgICAg
ICAgICAgICAgKDpnZW5lcmF0b3IgNApAQCAtMjY4LDcgKzI2OCw3IEBACiAgICAgICAgICAg
ICAgICAgICAoOmFyZ3MgKHZhbHVlIDpzY3MgKCxzYyB6ZXJvKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2FwIDpzY3MgKHNhcC1yZWcpKSkKICAgICAgICAgICAgICAgICAgICg6
aW5mbyBvZmZzZXQpCi0gICAgICAgICAgICAgICAgICAoOmFyZy10eXBlcyAsdHlwZSBzeXN0
ZW0tYXJlYS1wb2ludGVyICg6Y29uc3RhbnQgKHNhdGlzZmllcyBsZHItc3RyLW9mZnNldC1l
bmNvZGFibGUpKSkKKyAgICAgICAgICAgICAgICAgICg6YXJnLXR5cGVzICx0eXBlIHN5c3Rl
bS1hcmVhLXBvaW50ZXIgKDpjb25zdGFudCAoc2F0aXNmaWVzICxvZmZzZXQtdGVzdCkpKQog
ICAgICAgICAgICAgICAgICAgKDpnZW5lcmF0b3IgNAogICAgICAgICAgICAgICAgICAgICAo
aW5zdCAsKGNhc2Ugc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOmJ5dGUg
J3N0cmIpCkBAIC0yNzksMjkgKzI3OSwyOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3ZhbHVlKQogICAgICAgICAgICAgICAgICAgICAgIChAIHNhcCBvZmZzZXQpKSkpKSkp
CiAgIChkZWYtc3lzdGVtLXJlZi1hbmQtc2V0IHNhcC1yZWYtOCAlc2V0LXNhcC1yZWYtOAot
ICAgIHVuc2lnbmVkLXJlZyBwb3NpdGl2ZS1maXhudW0gOmJ5dGUgOnNpZ25lZCBuaWwpCisg
ICAgdW5zaWduZWQtcmVnIHBvc2l0aXZlLWZpeG51bSA6Ynl0ZSBsZHItc3RyLTgtb2Zmc2V0
LWVuY29kYWJsZSA6c2lnbmVkIG5pbCkKICAgKGRlZi1zeXN0ZW0tcmVmLWFuZC1zZXQgc2ln
bmVkLXNhcC1yZWYtOCAlc2V0LXNpZ25lZC1zYXAtcmVmLTgKLSAgICBzaWduZWQtcmVnIHRh
Z2dlZC1udW0gOmJ5dGUgOnNpZ25lZCB0KQorICAgIHNpZ25lZC1yZWcgdGFnZ2VkLW51bSA6
Ynl0ZSBsZHItc3RyLTgtb2Zmc2V0LWVuY29kYWJsZSA6c2lnbmVkIHQpCiAgIChkZWYtc3lz
dGVtLXJlZi1hbmQtc2V0IHNhcC1yZWYtMTYgJXNldC1zYXAtcmVmLTE2Ci0gICAgdW5zaWdu
ZWQtcmVnIHBvc2l0aXZlLWZpeG51bSA6c2hvcnQgOnNpZ25lZCBuaWwpCisgICAgdW5zaWdu
ZWQtcmVnIHBvc2l0aXZlLWZpeG51bSA6c2hvcnQgbGRyLXN0ci0xNi1vZmZzZXQtZW5jb2Rh
YmxlIDpzaWduZWQgbmlsKQogICAoZGVmLXN5c3RlbS1yZWYtYW5kLXNldCBzaWduZWQtc2Fw
LXJlZi0xNiAlc2V0LXNpZ25lZC1zYXAtcmVmLTE2Ci0gICAgc2lnbmVkLXJlZyB0YWdnZWQt
bnVtIDpzaG9ydCA6c2lnbmVkIHQpCisgICAgc2lnbmVkLXJlZyB0YWdnZWQtbnVtIDpzaG9y
dCBsZHItc3RyLTE2LW9mZnNldC1lbmNvZGFibGUgOnNpZ25lZCB0KQogICAoZGVmLXN5c3Rl
bS1yZWYtYW5kLXNldCBzYXAtcmVmLTMyICVzZXQtc2FwLXJlZi0zMgotICAgIHVuc2lnbmVk
LXJlZyB1bnNpZ25lZC1udW0gOndvcmQgOnNpZ25lZCBuaWwpCisgICAgdW5zaWduZWQtcmVn
IHVuc2lnbmVkLW51bSA6d29yZCBsZHItc3RyLTMyLW9mZnNldC1lbmNvZGFibGUgOnNpZ25l
ZCBuaWwpCiAgIChkZWYtc3lzdGVtLXJlZi1hbmQtc2V0IHNpZ25lZC1zYXAtcmVmLTMyICVz
ZXQtc2lnbmVkLXNhcC1yZWYtMzIKLSAgICBzaWduZWQtcmVnIHNpZ25lZC1udW0gOndvcmQg
OnNpZ25lZCB0KQorICAgIHNpZ25lZC1yZWcgc2lnbmVkLW51bSA6d29yZCBsZHItc3RyLTMy
LW9mZnNldC1lbmNvZGFibGUgOnNpZ25lZCB0KQogICAoZGVmLXN5c3RlbS1yZWYtYW5kLXNl
dCBzYXAtcmVmLTY0ICVzZXQtc2FwLXJlZi02NAotICAgIHVuc2lnbmVkLXJlZyB1bnNpZ25l
ZC1udW0gOmxvbmcgOnNpZ25lZCBuaWwpCisgICAgdW5zaWduZWQtcmVnIHVuc2lnbmVkLW51
bSA6bG9uZyBsZHItc3RyLW9mZnNldC1lbmNvZGFibGUgOnNpZ25lZCBuaWwpCiAgIChkZWYt
c3lzdGVtLXJlZi1hbmQtc2V0IHNpZ25lZC1zYXAtcmVmLTY0ICVzZXQtc2lnbmVkLXNhcC1y
ZWYtNjQKLSAgICBzaWduZWQtcmVnIHNpZ25lZC1udW0gOmxvbmcgOnNpZ25lZCB0KQorICAg
IHNpZ25lZC1yZWcgc2lnbmVkLW51bSA6bG9uZyBsZHItc3RyLW9mZnNldC1lbmNvZGFibGUg
OnNpZ25lZCB0KQogICAoZGVmLXN5c3RlbS1yZWYtYW5kLXNldCBzYXAtcmVmLXNhcCAlc2V0
LXNhcC1yZWYtc2FwCi0gICAgc2FwLXJlZyBzeXN0ZW0tYXJlYS1wb2ludGVyIDpsb25nKQor
ICAgIHNhcC1yZWcgc3lzdGVtLWFyZWEtcG9pbnRlciA6bG9uZyBsZHItc3RyLW9mZnNldC1l
bmNvZGFibGUpCiAgIChkZWYtc3lzdGVtLXJlZi1hbmQtc2V0IHNhcC1yZWYtbGlzcG9iaiAl
c2V0LXNhcC1yZWYtbGlzcG9iagotICAgIGRlc2NyaXB0b3ItcmVnICogOmxvbmcpCisgICAg
ZGVzY3JpcHRvci1yZWcgKiA6bG9uZyBsZHItc3RyLW9mZnNldC1lbmNvZGFibGUpCiAgIChk
ZWYtc3lzdGVtLXJlZi1hbmQtc2V0IHNhcC1yZWYtc2luZ2xlICVzZXQtc2FwLXJlZi1zaW5n
bGUKLSAgICBzaW5nbGUtcmVnIHNpbmdsZS1mbG9hdCA6c2luZ2xlKQorICAgIHNpbmdsZS1y
ZWcgc2luZ2xlLWZsb2F0IDpzaW5nbGUgbGRyLXN0ci0zMi1vZmZzZXQtZW5jb2RhYmxlKQog
ICAoZGVmLXN5c3RlbS1yZWYtYW5kLXNldCBzYXAtcmVmLWRvdWJsZSAlc2V0LXNhcC1yZWYt
ZG91YmxlCi0gICAgZG91YmxlLXJlZyBkb3VibGUtZmxvYXQgOmRvdWJsZSkpCisgICAgZG91
YmxlLXJlZyBkb3VibGUtZmxvYXQgOmRvdWJsZSBsZHItc3RyLW9mZnNldC1lbmNvZGFibGUp
KQogCiAoZGVmaW5lLXZvcCAoJXNhcC1yZWYtaW5kZXhlZCkKICAgKDp0cmFuc2xhdGUgJXNh
cC1yZWYtMTYtaW5kZXhlZCAlc2FwLXJlZi0zMi1pbmRleGVkICVzYXAtcmVmLTY0LWluZGV4
ZWQpCmRpZmYgLS1naXQgYS9zcmMvY29tcGlsZXIvYXJtNjQvdm0ubGlzcCBiL3NyYy9jb21w
aWxlci9hcm02NC92bS5saXNwCmluZGV4IGQ3ZWE3ZDFhOC4uYjU1MjAxYmNjIDEwMDY0NAot
LS0gYS9zcmMvY29tcGlsZXIvYXJtNjQvdm0ubGlzcAorKysgYi9zcmMvY29tcGlsZXIvYXJt
NjQvdm0ubGlzcApAQCAtMzY2LDQgKzM2Niw3IEBACiAgICAgICAgIGJpYy1maXhudW0tZW5j
b2RlLWltbWVkaWF0ZQogICAgICAgICBsb2dpY2FsLWltbWVkaWF0ZS1vci13b3JkLW1hc2sK
ICAgICAgICAgc2ItYXJtNjQtYXNtOjpsZHItc3RyLW9mZnNldC1lbmNvZGFibGUKKyAgICAg
ICAgc2ItYXJtNjQtYXNtOjpsZHItc3RyLTgtb2Zmc2V0LWVuY29kYWJsZQorICAgICAgICBz
Yi1hcm02NC1hc206Omxkci1zdHItMTYtb2Zmc2V0LWVuY29kYWJsZQorICAgICAgICBzYi1h
cm02NC1hc206Omxkci1zdHItMzItb2Zmc2V0LWVuY29kYWJsZQogICAgICAgICBwb3dlci1v
Zi10d28tcCkpCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCg==

--------------1s1s4jemj9jXsDlY0fL8uOgN
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--------------1s1s4jemj9jXsDlY0fL8uOgN
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Sbcl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-devel

--------------1s1s4jemj9jXsDlY0fL8uOgN--