[LLVMbugs] [Bug 8252] Problems with ARM PIC codegen

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Sep 29 08:03:04 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8252

Jim Grosbach <grosbach at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #4 from Jim Grosbach <grosbach at apple.com> 2010-09-29 10:03:04 CDT ---
Excellent diagnosis. Thank you.

The MC-ized assembly printer handles this correctly
(ARMMCInstLower::GetSymbolRef() and ARMMCInstLower::GetExternalSymbolSymbol()),
checking for an explicit value rather than bitmasking.

Previously this didn't manifest in the old asm printer as we only had two
machine operand values (MO_LO16 and MO_HI16), so treating them as bitmasks
worked out. Now that we've added a third, it broke.

If/when we do get cases where we need multiple values per operand, we'll want
to look at going the other direction and using a mask. For now, this is simpler
and consistent with how the rest of the compiler works. The X86 back end, for
example, makes extensive use of the machine operand flags and uses values
rather than masks, as does the MC-operand layer these values are translated
into.

This is fixed by transitioning to the new MC instruction printer. The old one
is getting removed, so it's effectively dead code at this point.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list