summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/README-X86-64.txt10
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
OpenPOWER on IntegriCloud