--- Comment #3 from alessandro dot lonardo at roma1 dot infn dot it
2006-05-23 09:22 ---
(In reply to comment #2)
Use:
asm volatile(\tmovl (%1), %0\n
\tincl %0\n
:=r (res) : r (pi): memory);
or
asm volatile(\tmovl (%2), %0\n
--- Comment #4 from pinskia at gcc dot gnu dot org 2006-05-23 15:36 ---
Actually Loop invariant motion is still doing its job even if the asm does not
clober memory, it does read memory and you did not record that. The correct
way to fix this is:
asm volatile(\tmovl (%1), %0\n
--- Comment #1 from pinskia at gcc dot gnu dot org 2006-05-22 17:32 ---
asm volatile(\tmovl (%1), %0\n
\tincl %0\n
:=r (res) : r (pi));
You don't mark the access of pi as being clobering memory.
--
pinskia at gcc dot gnu dot org changed:
--- Comment #2 from pinskia at gcc dot gnu dot org 2006-05-22 17:35 ---
Use:
asm volatile(\tmovl (%1), %0\n
\tincl %0\n
:=r (res) : r (pi): memory);
or
asm volatile(\tmovl (%2), %0\n
\tincl %0\n
:=r (res), m(*pi) : r