<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/src/t_aarch64_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-12T11:02:22+00:00</updated>
<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>aarch64: align leaf func stacks too</title>
<updated>2026-04-12T10:04:59+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-12T10:04:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=6adc43e4fc9de9cccee9b6be1ec0a8a1c7376d12'/>
<id>urn:sha1:6adc43e4fc9de9cccee9b6be1ec0a8a1c7376d12</id>
<content type='text'>
</content>
</entry>
<entry>
<title>aarch64: fix stack frame layout, again</title>
<updated>2026-04-12T09:51:25+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-12T09:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=f13b3021eb273af3093a498fb3b09271546ae3cc'/>
<id>urn:sha1:f13b3021eb273af3093a498fb3b09271546ae3cc</id>
<content type='text'>
Turns out hardware enforces SP 16-bit alignment in every SP relative
load/store, but QEMU doesn't emulate this.
</content>
</entry>
<entry>
<title>aarch64 handle more cases of stack relative addressing</title>
<updated>2026-04-09T07:31:25+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-09T07:31:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=2c777a84d54fec374f95034d2b823d92be6e8658'/>
<id>urn:sha1:2c777a84d54fec374f95034d2b823d92be6e8658</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>aarch64: GOT relocations</title>
<updated>2026-03-26T09:52:15+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-26T09:52:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=20dc93c4473a5d5a53462fff09a74b2839d10d6b'/>
<id>urn:sha1:20dc93c4473a5d5a53462fff09a74b2839d10d6b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>aarch64 struct arg passing ABI wip</title>
<updated>2026-03-25T15:36:29+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-25T15:36:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=79d6ac719042371d255ed1cf412e3232d13d1e56'/>
<id>urn:sha1:79d6ac719042371d255ed1cf412e3232d13d1e56</id>
<content type='text'>
</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>aarch64: rem/urem, bswap*, arg bugfix</title>
<updated>2026-03-22T18:25:46+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T18:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=cbca5355c0c0b1910735b1430e2552855a2aa5c7'/>
<id>urn:sha1:cbca5355c0c0b1910735b1430e2552855a2aa5c7</id>
<content type='text'>
</content>
</entry>
</feed>
