Veuillez consulter cette page à partir de l'interface principale.
version 2013-08-12

IPE : InterProcess Enter

Cette instruction fait partie du trio (avec IPC et IPR) créé pour permettre des appels sûrs entre process (presque) aussi rapides que des fonctions, sans nécessiter de microcode.

Cette instruction, précédée d'un NOP, marque un point d'entrée dans un process, appelé par un autre process au moyen de l'instructions IPC.

Le NOP est nécessaire pour resynchroniser le flot d'instructions : il assure que l'appelant saute bien sur une instruction IPE, au lieu de la fin d'une instruction longue ou étendue qui donnerait (par hasard ou non) l'opcode attendu. Par exemple, la fin de l'instruction ADD R1 R1 R3 BIT1 2 donne IPE R2 R3.

Si l'instruction IPE n'est pas précédée d'un NOP ou si ce NOP n'a pas été déclenché par l'instruction IPC, une erreur est signalée et l'appel est interrompu. Cela se produit aussi lorsque IPC saute sur autre chose qu'un NOP ou si ce NOP est suivi par une autre instruction que IPE.

Cette instruction n'est pas interruptible/prédicable (pour des raisons de sécurité encore une fois) et écrit dans le registre destination le numéro du process qui l'a appelé, afin de permettre le filtrage des appels par exemple.