From 967b751959b36a844abca8d3f4f32b8278f9bf9f Mon Sep 17 00:00:00 2001 From: Pixel <> Date: Mon, 16 Apr 2001 16:53:08 +0000 Subject: Alu.h & pot files --- lib/alu.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'lib/alu.c') diff --git a/lib/alu.c b/lib/alu.c index ffbf9c8..4b92050 100644 --- a/lib/alu.c +++ b/lib/alu.c @@ -1,4 +1,6 @@ #include "alu.h" +#include "config.h" +#include "exceptions.h" // rajouter les overflow... @@ -95,8 +97,7 @@ Uint32 ValeurIbitsAuDeb(Uint32 nb, int i) Uint32 val, un = 1; if ((i > 31) || (i < 0)) { - fprintf(stderr, "erreur, ValeurIbitsAuDeb: la position demande n est pas dans l'intervalle"); - return (0); + exception(_("ValeurIbitsAuDeb: position not in interval")); } val = nb >> i; val = val & un; @@ -156,8 +157,7 @@ Uint32 InverseIbit(Uint32 nb, int i) Uint32 un = 1; if ((i > 31) || (i < 0)) { - fprintf(stderr, "erreur, InverseIbit: la position demande n est pas dans l'intervalle"); - return (0); + exception(_("InverseIbit: position not in interval")); } un = (un << i); return (nb ^ un); @@ -177,7 +177,7 @@ Uint32 InverseUint32(Uint32 x) return (val); } -Uint32 AndBit(Uint32 x, Uint32 y) +Uint32 NAND(Uint32 x, Uint32 y) { Uint32 m = 1, z = 0; int i; @@ -189,7 +189,7 @@ Uint32 AndBit(Uint32 x, Uint32 y) return (z); } -Uint32 OrBit(Uint32 x, Uint32 y) +Uint32 NOR(Uint32 x, Uint32 y) { Uint32 m = 1, z = 0; int i; @@ -201,16 +201,24 @@ Uint32 OrBit(Uint32 x, Uint32 y) return (z); } -Uint32 ShlUint32(Uint32 x, int i) +Uint32 NSHLi(Uint32 x, int i) { return (x << i); } -Uint32 ShrUint32(Uint32 x, int i) +Uint32 NSHRi(Uint32 x, int i) { return (x >> i); } +Uint32 NSHL(Uint32 x) { + return NSHLi(x, 1); +} + +Uint32 NSHR(Uint32 x) { + return NSHRi(x, 1); +} + Uint32 NAdditionNonSigne(Uint32 x, Uint32 y) { int i; @@ -315,7 +323,7 @@ Uint32 NAdditionSigne(Uint32 x, Uint32 y) return (add); } -Uint32 SoustractionNonSigne(Uint32 x, Uint32 y) +Uint32 NSoustractionNonSigne(Uint32 x, Uint32 y) { /* x - y */ int i; @@ -367,7 +375,7 @@ Uint32 SoustractionNonSigne(Uint32 x, Uint32 y) return (sou); } -Uint32 SoustractionSignee(Uint32 x, Uint32 y) +Uint32 NSoustractionSignee(Uint32 x, Uint32 y) { /* x - y */ int i; @@ -640,8 +648,8 @@ Uint32 NDivisionNonSigne(Uint32 a, Uint32 b) {} Uint32 NDivisionSigne(Uint32 a, Uint32 b) {} Uint32 NAND(Uint32 a, Uint32 b) {} Uint32 NOR(Uint32 a, Uint32 b) {} -Uint32 NSHR(Uint32 a, Uint32 b) {} -Uint32 NSHL(Uint32 a, Uint32 b) {} +Uint32 NSHR(Uint32 a) {} +Uint32 NSHL(Uint32 a) {} #endif Uint32 AdditionNonSigne(Uint32 a, Uint32 b) @@ -737,17 +745,17 @@ Uint32 OR(Uint32 a, Uint32 b) Uint32 SHL(Uint32 a) { if (Rapide) { - return RSHL(a, b); + return RSHL(a); } else { - return NSHL(a, b); + return NSHL(a); } } Uint32 SHR(Uint32 a) { if (Rapide) { - return RSHR(a, b); + return RSHR(a); } else { - return NSHR(a, b); + return NSHR(a); } } -- cgit v1.2.3