diff options
Diffstat (limited to 'ghc/lib/std/cbits/longlong.c')
-rw-r--r-- | ghc/lib/std/cbits/longlong.c | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/ghc/lib/std/cbits/longlong.c b/ghc/lib/std/cbits/longlong.c index 6578504d69..d4180538b3 100644 --- a/ghc/lib/std/cbits/longlong.c +++ b/ghc/lib/std/cbits/longlong.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: longlong.c,v 1.1 2001/07/13 11:03:47 rrt Exp $ + * $Id: longlong.c,v 1.2 2001/07/14 00:06:15 sof Exp $ * * (c) The GHC Team, 1998-1999 * @@ -32,46 +32,46 @@ The exceptions to the rule are primops that cast to and from /* Relational operators */ -StgBool gtWord64 (StgWord64 a, StgWord64 b) {return a > b;} -StgBool geWord64 (StgWord64 a, StgWord64 b) {return a >= b;} -StgBool eqWord64 (StgWord64 a, StgWord64 b) {return a == b;} -StgBool neWord64 (StgWord64 a, StgWord64 b) {return a != b;} -StgBool ltWord64 (StgWord64 a, StgWord64 b) {return a < b;} -StgBool leWord64 (StgWord64 a, StgWord64 b) {return a <= b;} +StgBool stg_gtWord64 (StgWord64 a, StgWord64 b) {return a > b;} +StgBool stg_geWord64 (StgWord64 a, StgWord64 b) {return a >= b;} +StgBool stg_eqWord64 (StgWord64 a, StgWord64 b) {return a == b;} +StgBool stg_neWord64 (StgWord64 a, StgWord64 b) {return a != b;} +StgBool stg_ltWord64 (StgWord64 a, StgWord64 b) {return a < b;} +StgBool stg_leWord64 (StgWord64 a, StgWord64 b) {return a <= b;} -StgBool gtInt64 (StgInt64 a, StgInt64 b) {return a > b;} -StgBool geInt64 (StgInt64 a, StgInt64 b) {return a >= b;} -StgBool eqInt64 (StgInt64 a, StgInt64 b) {return a == b;} -StgBool neInt64 (StgInt64 a, StgInt64 b) {return a != b;} -StgBool ltInt64 (StgInt64 a, StgInt64 b) {return a < b;} -StgBool leInt64 (StgInt64 a, StgInt64 b) {return a <= b;} +StgBool stg_gtInt64 (StgInt64 a, StgInt64 b) {return a > b;} +StgBool stg_geInt64 (StgInt64 a, StgInt64 b) {return a >= b;} +StgBool stg_eqInt64 (StgInt64 a, StgInt64 b) {return a == b;} +StgBool stg_neInt64 (StgInt64 a, StgInt64 b) {return a != b;} +StgBool stg_ltInt64 (StgInt64 a, StgInt64 b) {return a < b;} +StgBool stg_leInt64 (StgInt64 a, StgInt64 b) {return a <= b;} /* Arithmetic operators */ -StgWord64 remWord64 (StgWord64 a, StgWord64 b) {return a % b;} -StgWord64 quotWord64 (StgWord64 a, StgWord64 b) {return a / b;} -StgInt64 remInt64 (StgInt64 a, StgInt64 b) {return a % b;} -StgInt64 quotInt64 (StgInt64 a, StgInt64 b) {return a / b;} -StgInt64 negateInt64 (StgInt64 a) {return -a;} -StgInt64 plusInt64 (StgInt64 a, StgInt64 b) {return a + b;} -StgInt64 minusInt64 (StgInt64 a, StgInt64 b) {return a - b;} -StgInt64 timesInt64 (StgInt64 a, StgInt64 b) {return a * b;} +StgWord64 stg_remWord64 (StgWord64 a, StgWord64 b) {return a % b;} +StgWord64 stg_quotWord64 (StgWord64 a, StgWord64 b) {return a / b;} +StgInt64 stg_remInt64 (StgInt64 a, StgInt64 b) {return a % b;} +StgInt64 stg_quotInt64 (StgInt64 a, StgInt64 b) {return a / b;} +StgInt64 stg_negateInt64 (StgInt64 a) {return -a;} +StgInt64 stg_plusInt64 (StgInt64 a, StgInt64 b) {return a + b;} +StgInt64 stg_minusInt64 (StgInt64 a, StgInt64 b) {return a - b;} +StgInt64 stg_timesInt64 (StgInt64 a, StgInt64 b) {return a * b;} /* Logical operators: */ -StgWord64 and64 (StgWord64 a, StgWord64 b) {return a & b;} -StgWord64 or64 (StgWord64 a, StgWord64 b) {return a | b;} -StgWord64 xor64 (StgWord64 a, StgWord64 b) {return a ^ b;} -StgWord64 not64 (StgWord64 a) {return ~a;} -StgWord64 shiftL64 (StgWord64 a, StgInt b) {return a << b;} -StgWord64 shiftRL64 (StgWord64 a, StgInt b) {return a >> b;} +StgWord64 stg_and64 (StgWord64 a, StgWord64 b) {return a & b;} +StgWord64 stg_or64 (StgWord64 a, StgWord64 b) {return a | b;} +StgWord64 stg_xor64 (StgWord64 a, StgWord64 b) {return a ^ b;} +StgWord64 stg_not64 (StgWord64 a) {return ~a;} +StgWord64 stg_shiftL64 (StgWord64 a, StgInt b) {return a << b;} +StgWord64 stg_shiftRL64 (StgWord64 a, StgInt b) {return a >> b;} /* Right shifting of signed quantities is not portable in C, so the behaviour you'll get from using these primops depends on the whatever your C compiler is doing. ToDo: fix. -- sof 8/98 */ -StgInt64 iShiftL64 (StgInt64 a, StgInt b) {return a << b;} -StgInt64 iShiftRA64 (StgInt64 a, StgInt b) {return a >> b;} -StgInt64 iShiftRL64 (StgInt64 a, StgInt b) +StgInt64 stg_iShiftL64 (StgInt64 a, StgInt b) {return a << b;} +StgInt64 stg_iShiftRA64 (StgInt64 a, StgInt b) {return a >> b;} +StgInt64 stg_iShiftRL64 (StgInt64 a, StgInt b) {return (StgInt64) ((StgWord64) a >> b);} /* Casting between longs and longer longs: @@ -79,11 +79,11 @@ StgInt64 iShiftRL64 (StgInt64 a, StgInt b) expressed as macros, since these may cause some heap allocation). */ -StgInt64 intToInt64 (StgInt i) {return (StgInt64) i;} -StgInt int64ToInt (StgInt64 i) {return (StgInt) i;} -StgWord64 int64ToWord64 (StgInt64 i) {return (StgWord64) i;} -StgWord64 wordToWord64 (StgWord w) {return (StgWord64) w;} -StgWord word64ToWord (StgWord64 w) {return (StgWord) w;} -StgInt64 word64ToInt64 (StgWord64 w) {return (StgInt64) w;} +StgInt64 stg_intToInt64 (StgInt i) {return (StgInt64) i;} +StgInt stg_int64ToInt (StgInt64 i) {return (StgInt) i;} +StgWord64 stg_int64ToWord64 (StgInt64 i) {return (StgWord64) i;} +StgWord64 stg_wordToWord64 (StgWord w) {return (StgWord64) w;} +StgWord stg_word64ToWord (StgWord64 w) {return (StgWord) w;} +StgInt64 stg_word64ToInt64 (StgWord64 w) {return (StgInt64) w;} #endif /* SUPPORT_LONG_LONGS */ |