<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/src/t_x86-64_emit.c, branch trunk</title>
<subtitle>A little C compiler</subtitle>
<id>https://git.lemon.rip/antcc/atom?h=trunk</id>
<link rel='self' href='https://git.lemon.rip/antcc/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/'/>
<updated>2026-04-15T17:36:50+00:00</updated>
<entry>
<title>x86-64 backend: fix some edgecases not emitting GOT relocations</title>
<updated>2026-04-15T17:36:50+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-15T17:36:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=5293b3cc8876cbc775875974e0c1b7e32952b140'/>
<id>urn:sha1:5293b3cc8876cbc775875974e0c1b7e32952b140</id>
<content type='text'>
Logic for this was duplicated. Updated in c4d9087746 but only in one of
the places, so broke on some PIC code.
</content>
</entry>
<entry>
<title>get rid of other warnings</title>
<updated>2026-04-12T11:02:22+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-12T11:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=5886346cf680c5011de282d00c6f0b2d10431171'/>
<id>urn:sha1:5886346cf680c5011de282d00c6f0b2d10431171</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x86-64/emit: fix stack arg offset for edgecases</title>
<updated>2026-04-11T10:13:08+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-11T10:13:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=116a53553bfc3f5c55fb532550b97be8fab4c200'/>
<id>urn:sha1:116a53553bfc3f5c55fb532550b97be8fab4c200</id>
<content type='text'>
It was wrong for functions that didn't use the frame pointer but took
arguments in the stack
</content>
</entry>
<entry>
<title>backend: inlining improvements</title>
<updated>2026-04-09T13:28:27+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-09T13:28:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=c4d90877469e801c34066a7f823ffb1144dd5851'/>
<id>urn:sha1:c4d90877469e801c34066a7f823ffb1144dd5851</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement basic aarch64 struct arg passing ABI</title>
<updated>2026-04-08T08:26:18+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-08T08:26:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=8b79b61ae78c91c069447331ed64d400187bdd77'/>
<id>urn:sha1:8b79b61ae78c91c069447331ed64d400187bdd77</id>
<content type='text'>
- Missing: vaargs, &gt;2 member HFAs

- Reworked the way stack allocation references are lowered. Now RSTACK
  persists throughout all passes until emit. This allows deferring stack
  frame layouting until the end in a less messy way than before, which
  was emiting frame-pointer relative addresses @ isel time and patching them up
  later in emit to account for actual stack frame layout.
</content>
</entry>
<entry>
<title>x86-64: redzone optimization for leaf functions</title>
<updated>2026-03-27T12:58:44+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-27T12:58:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=b8dea129488959adeadc2e444d769f2a2ac709d8'/>
<id>urn:sha1:b8dea129488959adeadc2e444d769f2a2ac709d8</id>
<content type='text'>
Don't use frame pointer or explicitly modify stack pointer for these
</content>
</entry>
<entry>
<title>IR: emit inline function standalone bodies lazily</title>
<updated>2026-03-23T22:43:52+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-23T22:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=62d995124c0cc2eaeec79e18edc3e044f3e524c9'/>
<id>urn:sha1:62d995124c0cc2eaeec79e18edc3e044f3e524c9</id>
<content type='text'>
If a function is stashed for inlining and inlined in all of its
callsites or unused, it never ends up in the object file. If any symbol
reference to it is emitted, then it must be de-inlined (rematerialized),
and this is done near the end before emitting the actual object file.
</content>
</entry>
<entry>
<title>style: change uvlong -&gt; u64int, vlong -&gt; s64int</title>
<updated>2026-03-22T21:00:35+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T21:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=7c5dd45eca377a3b675b6f0d4a9331bc3f971ac9'/>
<id>urn:sha1:7c5dd45eca377a3b675b6f0d4a9331bc3f971ac9</id>
<content type='text'>
Is much nicer. I don't know whether I want to do it for the other int
types too. char and uchar are fine as bytes. u/short -&gt; u/s16int, maybe.
</content>
</entry>
<entry>
<title>regalloc &amp; emit: explicit comparisons over memcmp of small structures</title>
<updated>2026-03-19T10:51:13+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-19T10:51:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=46fc55e27390ea85eb34ec0367f40426197c9b9f'/>
<id>urn:sha1:46fc55e27390ea85eb34ec0367f40426197c9b9f</id>
<content type='text'>
The one in x86-64_emit was not portable due to relying on zero
initialization of inactive union fields/padding.
</content>
</entry>
<entry>
<title>Refactor: use typedefs and CamelCase for aggregate types</title>
<updated>2026-03-18T10:33:41+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-18T10:33:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=1d9e19fb3bb941cdc28e9d4c3063d3e213fd8312'/>
<id>urn:sha1:1d9e19fb3bb941cdc28e9d4c3063d3e213fd8312</id>
<content type='text'>
Looks nicer
</content>
</entry>
</feed>
