mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
When slots are used with a large offset, the emitter generates invalid assembly code. That is caught later on by the assembler, but it prevents compilation of programs with large stack frames. When a slot offset is too large to be expressed as a constant offset to x29 (the frame pointer), emitins() inserts a late Oaddr instruction to x16 and replaces the large slot reference with x16. This change also gave me the opportunity to refactor the save/restore logic for callee-save registers. This fixes the following Hare issue: https://todo.sr.ht/~sircmpwn/hare/387 |
||
|---|---|---|
| .. | ||
| abi.c | ||
| all.h | ||
| emit.c | ||
| isel.c | ||
| targ.c | ||