[Bug middle-end/10396] Constraint alternatives cause error " `asm' operand requires impossible reload"
rearnsha at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Aug 25 17:02:00 GMT 2004
------- Additional Comments From rearnsha at gcc dot gnu dot org 2004-08-25 17:02 -------
> asm("# %0 %1 %2 %3"
> : "=&r"(result), "=&r"(temp) // outputs
> : "%r"(*mantissaA), "01r"(*mantissaB - *mantissaA) // inputs
> );
This shorter example is bogus. You can't tie a single output operand to
multiple input operands.
I think the underlying problem here is that we don't really support alternatives
in asm constraints (see, for example asm_operand_ok, which basically ignores ','
-- hence the reason the bogus example produces the same behaviour).
Maybe we should just document this as a limitation of inline assembly and change
the compiler to reject asm patterns that have multiple alternatives.
--
What |Removed |Added
----------------------------------------------------------------------------
Component|rtl-optimization |middle-end
GCC target triplet|arm-arm-elf |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10396
More information about the Gcc-bugs
mailing list