mirror of
git://c9x.me/qbe.git
synced 2026-04-05 09:59:47 +00:00
It is quite similar to arm64_apple.
Probably, the call that needs to be
generated also provides extra
invariants on top of the regular
abi, but I have not checked that.
Clang generates code that is a bit
neater than qbe's because, on x86,
a load can be fused in a call
instruction! We do not bother with
supporting these since we expect
only sporadic use of the feature.
For reference, here is what clang
might output for a store to the
second entry of a thread-local
array of ints:
movq _x@TLVP(%rip), %rdi
callq *(%rdi)
movl %ecx, 4(%rax)
|
||
|---|---|---|
| amd64 | ||
| arm64 | ||
| doc | ||
| minic | ||
| rv64 | ||
| test | ||
| tools | ||
| .gitignore | ||
| abi.c | ||
| alias.c | ||
| all.h | ||
| cfg.c | ||
| copy.c | ||
| emit.c | ||
| fold.c | ||
| LICENSE | ||
| live.c | ||
| load.c | ||
| main.c | ||
| Makefile | ||
| mem.c | ||
| ops.h | ||
| parse.c | ||
| README | ||
| rega.c | ||
| spill.c | ||
| ssa.c | ||
| util.c | ||
QBE - Backend Compiler http://c9x.me/compile/ doc/ Documentation. minic/ An example C frontend for QBE. tools/ Miscellaneous tools (testing). test/ Tests. amd64/ arm64/ rv64/ Architecture-specific code. The LICENSE file applies to all files distributed. - Compilation and Installation Invoke make in this directory to create the executable file qbe. Install using 'make install', the standard DESTDIR and PREFIX environment variables are supported. Alternatively, you may simply copy the qbe binary manually.