Skip to content
  • Chris Lattner's avatar
    Fix PR4533, which is about buggy codegen in x86-64 -static mode. · e9190009
    Chris Lattner authored
    Basically, using:
      lea symbol(%rip), %rax
    
    is not valid in -static mode, because the current RIP may not be
    within 32-bits of "symbol" when an app is built partially pic and
    partially static.  The fix for this is to compile it to:
    
      lea symbol, %rax
    
    It would be better to codegen this as:
    
      movq $symbol, %rax
    
    but that will come next.
    
    
    The hard part of fixing this bug was fixing abi-isel, which was actively
    testing for the wrong behavior.  Also, the RUN lines are completely impossible
    to understand what they are testing.  To help with this, convert the -static 
    x86-64 codegen tests to use filecheck.  This is much more stable and makes it
    more clear what the codegen is expected to be.
    
    llvm-svn: 75382
    e9190009
Loading