[Bug target/105814] 16 "=rm" use in inline-asm is rejected at -O0
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jun 2 04:29:54 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105814
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|operand has impossible |16 "=rm" use in inline-asm
|constraints - worked with |is rejected at -O0
|previous releases |
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
void collect_regs(unsigned long *regs)
{
__asm__ __volatile__(""
:"=rm"(regs[0]), "=rm"(regs[1]), "=rm"(regs[2]), "=rm"(regs[3]),
"=rm"(regs[4]), "=rm"(regs[5]), "=rm"(regs[6]), "=rm"(regs[7]),
"=rm"(regs[8]), "=rm"(regs[9]), "=rm"(regs[10]), "=rm"(regs[11]),
"=rm"(regs[12]), "=rm"(regs[13]), "=rm"(regs[14]), "=rm"(regs[15]));
}
```
This fails only at -O0. at -O1 it works. clang even rejects it at -O0 too.
More information about the Gcc-bugs
mailing list