--- rpl/src/instructions_s1.c 2010/02/10 10:14:24 1.3 +++ rpl/src/instructions_s1.c 2010/02/11 17:06:02 1.4 @@ -4378,9 +4378,21 @@ instruction_sign(struct_processus *s_eta return; } - f77absc_((struct_complexe16 *) (*s_objet_argument).objet, &norme); - f77divisioncr_((struct_complexe16 *) (*s_objet_argument).objet, - &norme, (struct_complexe16 *) (*s_objet_resultat).objet); + if (((*((struct_complexe16 *) (*s_objet_argument).objet)).partie_reelle + != 0) || ((*((struct_complexe16 *) (*s_objet_argument).objet)) + .partie_imaginaire != 0)) + { + f77absc_((struct_complexe16 *) (*s_objet_argument).objet, &norme); + f77divisioncr_((struct_complexe16 *) (*s_objet_argument).objet, + &norme, (struct_complexe16 *) (*s_objet_resultat).objet); + } + else + { + (*((struct_complexe16 *) (*s_objet_argument).objet)) + .partie_reelle = 0; + (*((struct_complexe16 *) (*s_objet_argument).objet)) + .partie_imaginaire = 0; + } } /*