Re: [Sbcl-commits] master: x86-64, struct-by-value: correctly pass small structs on the stack

Stas Boukarev <[email protected]> Sat, 25 Apr 2026 00:34:07 +0300
Newsgroups gmane.lisp.steel-bank.devel
Message-ID <CAF63=10nbsfGHFQZb7VvR-voV2JzLaj-o899DPnsxksO=qYXmw@mail.gmail.com>
RG9lcyB0aGUgQUJJIHNheSBhbnl0aGluZyBhYm91dCBleHRlbnQ/IENvcHlpbmcgdGhlIHdob2xl
IHN0cnVjdCBpcwplYXN5LCBidXQgbWF5YmUgdGhlIGNhbGxlciBkb2Vzbid0IGNhcmUgd2hhdCBo
YXBwZW5zIHRvIHRoZSBvcmlnaW5hbApzdHJ1Y3QgYW5kIGNhbiBhdm9pZCBjb3B5aW5nLgoKT24g
U2F0LCBBcHIgMjUsIDIwMjYgYXQgMTI6MTbigK9BTSBKZXNzZSBCb3V3bWFuCjxqZXNzZS5ib3V3
bWFuQHByb3Rvbm1haWwuY29tPiB3cm90ZToKPgo+IE92ZXItcmVhZHMgKGFuZCB3cml0ZSkgYXJl
IGEgY2xlYXIgcHJvYmxlbTogdGhlIGxvYWQgVk9QcyBvbmx5IG9wZXJhdGUgb24gbXVsdGlwbGVz
IG9mIDgtYnl0ZXMgYW5kIGhhcHBpbHkgcmVhZCBhY3Jvc3MgcGFnZSBib3VuZGFyaWVzLiBJIG1h
ZGUgYSAyLXBhZ2UgUlcvTk9ORSBoYXJuZXNzIGZvciB0aGlzLCBhbmQgaGF2ZSB0ZXN0cyBwbHVz
IGEgZml4IGluIHByb2dyZXNzLgo+Cj4gQWxzbywgYWJvdXQgY29weWluZyBwb2ludGVycyB0byBz
dGFjaywgdGhhdCdzIGV4YWN0bHkgd2hhdCBib3RoIEFCSXMgc2F5OiB0aGUgY2FsbGVlIG93bnMg
dGhlIG1lbW9yeS4gRG8geW91IGhhdmUgaWRlYXMgYWJvdXQgYmVoYXZpb3IgaGVyZT8gSSBjYW4n
dCB0aGluayBvZiBhbnl0aGluZyB0byBkby4KPgo+ID4gT24gQXByIDIzLCAyMDI2LCBhdCAyOjQ5
4oCvUE0sIFN0YXMgQm91a2FyZXYgPHN0YXNzYXRzQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4g
T25lIGlzc3VlIEknbSBub3Qgc3VyZSBob3cgdG8gc29sdmUgKG9yIHdoZXRoZXIgdG8gc29sdmUp
IGlzIHRoYXQgaW4KPiA+IEMsIHN0cnVjdHMgdHJhdmVsaW5nIGJ5IG1lbW9yeSBjYW4ndCBiZSBk
b25lIGJ5IGp1c3QgcGFzc2luZyBhIHBvaW50ZXIKPiA+IHRvIHNvbWUgZXhpc3Rpbmcgc3RydWN0
Lgo+ID4gVGhleSBnZXQgY29waWVkIHRvIGEgbmV3IHN0YWNrIGxvY2F0aW9uLgo+ID4gSXQgd291
bGQgYmUgZ29vZCB0byBjb250cm9sIHdoZXRoZXIgdGhhdCBoYXBwZW5zLCBidXQgbWF5YmUgdGhl
IEFCSQo+ID4gc2F5cyAidGhpcyByZWdpb24gaXMgbm93IG1pbmUsIGFueXRoaW5nIGNhbiBiZSBk
b25lIHdpdGggaXQiLgo+ID4KPiA+IE9uIEZyaSwgQXByIDI0LCAyMDI2IGF0IDEyOjQw4oCvQU0g
SmVzc2UgQm91d21hbgo+ID4gPGplc3NlLmJvdXdtYW5AcHJvdG9ubWFpbC5jb20+IHdyb3RlOgo+
ID4+Cj4gPj4gU3RhcywgaWYgeW91IHdhbnQgdG8gc2VuZCBtZSBhIGxpc3Qgb2YgZmluZGluZ3Mg
YW5kIHRlc3QgZ2FwcywgSSB3aWxsIHB1dCB0aW1lIGludG8gY2xvc2luZyB0aGVtIG91dCAtLSBq
dXN0IHJhdyBub3RlcyBvciBMTE0gZmluZGluZ3MgYXJlIGVub3VnaC4KPiA+Pgo+ID4+IEplc3Nl
Cj4gPj4KPiA+Pj4gT24gQXByIDIzLCAyMDI2LCBhdCAyOjI14oCvUE0sIFN0YXMgQm91a2FyZXYg
PHN0YXNzYXRzQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+Cj4gPj4+IFRoZSBzdHJ1Y3QtYnktdmFs
dWUgaXNzdWVzIGtlZXAgY29taW5nIGFuZCBjb21pbmcsIEknbSBhbHJlYWR5IHRpcmVkCj4gPj4+
IG9mIGZpeGluZyB0aGVtLCBoYXZlIG5vIHN0cmVuZ3RoIHRvIGFkZCBwcm9wZXIgdGVzdHMuCj4g
Pj4+IEFuZCBpdCBhbHNvIG5lZWRzIHRvIHRlc3QgZm9yIG92ZXItcmVhZGluZyBpbnB1dCBzdHJ1
Y3R1cmVzLCBJIGhhdmUKPiA+Pj4gc29tZSBzY2FmZm9sZGluZyBmcm9tIHRoZSB0aW1lIG9mIHdy
aXRpbmcgc2ltZCByb3V0aW5lcyB3aGljaCBtbWFwcwo+ID4+PiBkYXRhIGF0IHRoZSBlZGdlcyBv
ZiBhIHByb3RlY3RlZCByZWdpb24uCj4gPj4+Cj4gPj4+IE9uIFRodSwgQXByIDIzLCAyMDI2IGF0
IDExOjE34oCvUE0gQ2hyaXN0b3BoZSBSaG9kZXMgPGNzcjIxQGNhbnRhYi5uZXQ+IHdyb3RlOgo+
ID4+Pj4KPiA+Pj4+IFN0YXMgQm91a2FyZXYgPHN0YXNzYXRzQGdtYWlsLmNvbT4gd3JpdGVzOgo+
ID4+Pj4KPiA+Pj4+PiBJIGp1c3Qgc2VuZCBjLWNhbGwubGlzcCB0byB2YXJpb3VzIGZyZWUgTExN
cyBhbmQgc2F5ICJmaW5kIGJ1Z3MgaGVyZSIuCj4gPj4+Pj4gQW5kIGFsc28gbWFrZSB0aGVtIGdl
bmVyYXRlIHRlc3QgY2FzZXMuCj4gPj4+Pj4gSSBkaWRuJ3QgaW5jbHVkZSBhbnkgc3BlY2lmaWMg
dGVzdCBiZWNhdXNlIHRoZXkgd29uJ3QgZmluZCBuZXcKPiA+Pj4+PiBwcm9ibGVtcy4KPiA+Pj4+
Cj4gPj4+PiBTdXJlLCBidXQgdGhleSdsbCBoZWxwIHRoZSBkYXkgc29tZW9uZSB3YW50cyB0byBt
YWtlIHN0cnVjdC1ieS12YWx1ZQo+ID4+Pj4gd29yayBvbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBz
dXBwb3J0IGl0IHlldC4gIChNYXliZSBpbiB0aGlzIGdyYW5kCj4gPj4+PiBmdXR1cmUgdGhhdCdz
IGxlc3MgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UnbGwganVzdCBzZW5kIHJpc2N2J3MgYy1jYWxsIHRv
Cj4gPj4+PiBzb21lIExMTSBhbmQgc2F5ICJub3cgaW1wbGVtZW50IHRoZSBzdHJ1Y3QtYnktdmFs
dWUgQUJJIHBsZWFzZSIuKQo+ID4+Pj4KPiA+Pj4+PiBBIHRlc3QgdGhhdCBwZXJmb3JtcyBhbiBl
eGhhdXN0aXZlIGNvbWJpbmF0aW9uIG9mIGRpZmZlcmVudCBmb3JlaWduCj4gPj4+Pj4gdHlwZXMg
aXMgbmVlZGVkLgo+ID4+Pj4+IEJ1dCBJJ20gbm90IGVhZ2VyIHRvIG1ha2UgdGhhdCB5ZXQuCj4g
Pj4+Pgo+ID4+Pj4gLi4uIHRoYXQgd291bGQgd29yayB0b28sIHN1cmUuICBJIGNhbiBiZSBwYXRp
ZW50Lgo+ID4+Pj4KPiA+Pj4+IFRoYW5rcywKPiA+Pj4+Cj4gPj4+PiBDaHJpc3RvcGhlCj4gPj4+
Cj4gPj4+Cj4gPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCj4gPj4+IFNiY2wtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4+IFNiY2wtZGV2ZWxAbGlzdHMu
c291cmNlZm9yZ2UubmV0Cj4gPj4+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3Rz
L2xpc3RpbmZvL3NiY2wtZGV2ZWwKPiA+Pgo+ID4+Cj4KPgoKCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fClNiY2wtZGV2ZWwgbWFpbGluZyBsaXN0ClNiY2wt
ZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0
L2xpc3RzL2xpc3RpbmZvL3NiY2wtZGV2ZWwK