Skip to content
  • Chris Lattner's avatar
    fix PR5179 and correctly fix PR5831 to not miscompile. · 8a2f3c77
    Chris Lattner authored
    The X86-64 ABI code didn't handle the case when a struct
    would get classified and turn up as "NoClass INTEGER" for
    example.  This is perfectly possible when the first slot
    is all padding (e.g. due to empty base classes).  In this
    situation, the first 8-byte doesn't take a register at all,
    only the second 8-byte does.
    
    This fixes this by enhancing the x86-64 abi stuff to allow
    and handle this case, reverts the broken fix for PR5831,
    and enhances the target independent stuff to be able to 
    handle an argument value in registers being accessed at an
    offset from the memory value.
    
    This is the last x86-64 calling convention related miscompile
    that I'm aware of.
    
    llvm-svn: 109848
    8a2f3c77
Loading