[SOS] Probe memory

David MENTRE dmentre at linux-france.org
Lun 20 Déc 17:06:29 CET 2004


Bonjour,

LfvrChris at aol.com writes:

>     Il rest encore quelques points à éclaircir en ce  qui concerne le code 
> ci-dessous. Notamment l'instruction suivante:
>  
> asm("":::"memory");
>  
> Que veut-elle dire ?
> Quelle est son rôle ?

J'espère ne pas dire de bêtises, les experts me corrigeront sinon.

C'est instruction indique au compilateur une instruction assembleur vide
("") qui touche à la mémoire ("memory"). Dans ce cas là, comme le
compilateur ne sait pas qu'elle est l'effet de bord d'une instruction
qui touche à la mémoire, il ne fait pas d'optimisation au-delà de
l'instruction.

Ce genre de construction est souvent utilisé pour éviter que le
compilateur ne ré-ordonne des instructions dont l'ordre initial doit
être impérativement respecté pour que ça marche (typiquement, l'accès à
un périphérique ou du code qui manipule l'état du processeur).

Amicalement,
david
-- 
pub  1024D/A3AD7A2A 2004-10-03 David MENTRE <dmentre at linux-france.org>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A



Plus d'informations sur la liste de diffusion Sos