Commit 7d14f068 authored by Matthias Braun's avatar Matthias Braun
Browse files

update amd64 TODO file

parent 2576b281
amd64 backend TODO: amd64 backend TODO:
Correctness: Correctness:
- Handle Alloc nodes (used by alloca and C99 VLA). See ia32/sparc backend on
how to do this.
- SSE Division is not commutative and we have no neg-add style workaround like - SSE Division is not commutative and we have no neg-add style workaround like
for the Sub node. So maybe we need finally need a must_be_same constraint. for the Sub node. So maybe we need finally need a must_be_same constraint.
- stdarg.h/varargs va_start - stdarg.h/varargs va_start
- compound return calling convention - compound return calling convention
- Implement more builtins (libgcc lacks several of them that gcc provides - Implement more builtins (libgcc lacks several of them that gcc provides
natively on amd64 so cparser/libfirm when linking to the compilerlib fallback) natively on amd64 so cparser/libfirm when linking to the compilerlib fallback)
- Builtins not implemented: clz, ctz, ffs, parity, popcount
- Bitcast not implemented
- Thread local storage not implemented
- support for setjmp
- Support ASM node - Support ASM node
- fail on long double
- (Support 80bit long double with x87 instructions) - (Support 80bit long double with x87 instructions)
- (Implement Position Independent Code (PIC)) - (Implement Position Independent Code (PIC))
...@@ -36,3 +39,4 @@ Improve Quality: ...@@ -36,3 +39,4 @@ Improve Quality:
attributes, this allows us to think of them as associative operations and attributes, this allows us to think of them as associative operations and
for example swap inputs to enable load folding, or immediates. for example swap inputs to enable load folding, or immediates.
- Lea needs to support all address modes (base, index +shifts, symconsts) - Lea needs to support all address modes (base, index +shifts, symconsts)
- Match RCPxx SSE instruction
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment