diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/README-X86-64.txt | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/README-X86-64.txt b/llvm/lib/Target/X86/README-X86-64.txt index af3e2732371..a0ed3a3194b 100644 --- a/llvm/lib/Target/X86/README-X86-64.txt +++ b/llvm/lib/Target/X86/README-X86-64.txt @@ -252,6 +252,16 @@ Note, however, we should continue to use RIP relative addressing mode as much as possible. The above is actually one byte shorter than movq $_dst, _ptr +A better example is the code from PR1018. We are generating: + leaq xcalloc2(%rip), %rax + movq %rax, 8(%rsp) +when we should be generating: + movq $xcalloc2, 8(%rsp) + +The reason the better codegen isn't done now is support for static small +code model in JIT mode. The JIT cannot ensure that all GV's are placed in the +lower 4G so we are not treating GV labels as 32-bit values. + //===---------------------------------------------------------------------===// Right now the asm printer assumes GlobalAddress are accessed via RIP relative |