--- rpl/src/instructions_m1.c 2012/01/05 10:19:02 1.30 +++ rpl/src/instructions_m1.c 2013/03/16 11:31:41 1.42 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.5 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.13 + Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -39,7 +39,6 @@ void instruction_moins(struct_processus *s_etat_processus) { integer8 tampon; - integer8 tampon_2; logical1 depassement; logical1 drapeau; @@ -136,10 +135,8 @@ instruction_moins(struct_processus *s_et if (((*s_objet_argument_1).type == INT) && ((*s_objet_argument_2).type == INT)) { - tampon_2 = -(*((integer8 *) (*s_objet_argument_1).objet)); - - if (depassement_addition(&tampon_2, - (integer8 *) (*s_objet_argument_2).objet, &tampon) == + if (depassement_soustraction((integer8 *) (*s_objet_argument_2).objet, + (integer8 *) (*s_objet_argument_1).objet, &tampon) == d_absence_erreur) { if ((s_objet_resultat = allocation(s_etat_processus, INT)) @@ -161,8 +158,8 @@ instruction_moins(struct_processus *s_et } (*((real8 *) (*s_objet_resultat).objet)) = ((real8) - (-(*((integer8 *) (*s_objet_argument_1).objet)))) - + ((real8) (*((integer8 *) (*s_objet_argument_2).objet))); + (*((integer8 *) (*s_objet_argument_2).objet))) + - ((real8) (*((integer8 *) (*s_objet_argument_1).objet))); } } @@ -351,11 +348,10 @@ instruction_moins(struct_processus *s_et for(i = 0; i < (*(((struct_vecteur *) (*s_objet_resultat) .objet))).taille; i++) { - tampon = -((integer8 *) (*((struct_vecteur *) (*s_objet_argument_1) - .objet)).tableau)[i]; - - if (depassement_addition(&(((integer8 *) (*((struct_vecteur *) - (*s_objet_argument_2).objet)).tableau)[i]), &tampon, + if (depassement_soustraction(&(((integer8 *) (*((struct_vecteur *) + (*s_objet_argument_2).objet)).tableau)[i]), + &(((integer8 *) (*((struct_vecteur *) (*s_objet_argument_1) + .objet)).tableau)[i]), &(((integer8 *) (*((struct_vecteur *) (*s_objet_resultat).objet)).tableau)[i])) == d_erreur) { @@ -738,11 +734,10 @@ instruction_moins(struct_processus *s_et for(j = 0; j < (*(((struct_matrice *) (*s_objet_resultat).objet))) .nombre_colonnes; j++) { - tampon = -((integer8 **) (*((struct_matrice *) - (*s_objet_argument_1).objet)).tableau)[i][j]; - - if (depassement_addition(&(((integer8 **) (*((struct_matrice *) - (*s_objet_argument_2).objet)).tableau)[i][j]), &tampon, + if (depassement_soustraction(&(((integer8 **) + (*((struct_matrice *) (*s_objet_argument_2).objet)) + .tableau)[i][j]), &(((integer8 **) (*((struct_matrice *) + (*s_objet_argument_1).objet)).tableau)[i][j]), &(((integer8 **) (*((struct_matrice *) (*s_objet_resultat).objet)).tableau)[i][j])) == d_erreur) @@ -5795,8 +5790,6 @@ instruction_mant(struct_processus *s_eta real8 base_reelle; real8 reduction_reelle; - integer4 erreur; - integer8 base_entiere; integer8 exposant; integer8 reduction_entiere; @@ -5898,23 +5891,7 @@ instruction_mant(struct_processus *s_eta (*s_objet_argument).objet)))); base_reelle = 10; - f77puissanceri_(&base_reelle, &exposant, &reduction_reelle, &erreur); - - if (erreur == -1) - { - if (test_cfsf(s_etat_processus, 59) == d_vrai) - { - liberation(s_etat_processus, s_objet_argument); - liberation(s_etat_processus, s_objet_resultat); - - (*s_etat_processus).exception = d_ep_overflow; - return; - } - else - { - reduction_reelle = ((double) 1) / ((double) 0); - } - } + f77puissanceri_(&base_reelle, &exposant, &reduction_reelle); (*((real8 *) (*s_objet_resultat).objet)) = (*((real8 *) (*s_objet_argument).objet)) / reduction_reelle;