Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
GHC
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
alexbiehl-gc
GHC
Commits
ef76f766
Commit
ef76f766
authored
25 years ago
by
sof
Browse files
Options
Downloads
Patches
Plain Diff
[project @ 1999-09-19 19:30:26 by sof]
exts/ is now also a _ccall_ free zone.
parent
e16cfb55
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
ghc/lib/exts/Int.lhs
+75
-54
75 additions, 54 deletions
ghc/lib/exts/Int.lhs
ghc/lib/exts/Word.lhs
+67
-49
67 additions, 49 deletions
ghc/lib/exts/Word.lhs
with
142 additions
and
103 deletions
ghc/lib/exts/Int.lhs
+
75
−
54
View file @
ef76f766
...
...
@@ -869,147 +869,168 @@ int64ToInt (I64# i#) = I# (int64ToInt# i#)
-- Word64# primop wrappers:
ltInt64# :: Int64# -> Int64# -> Bool
ltInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_ltInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
ltInt64# x# y# =
case stg_ltInt64 x# y# of
0 -> False
_ -> True
leInt64# :: Int64# -> Int64# -> Bool
leInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_leInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
leInt64# x# y# =
case stg_leInt64 x# y# of
0 -> False
_ -> True
eqInt64# :: Int64# -> Int64# -> Bool
eqInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_eqInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
eqInt64# x# y# =
case stg_eqInt64 x# y# of
0 -> False
_ -> True
neInt64# :: Int64# -> Int64# -> Bool
neInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_neInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
neInt64# x# y# =
case stg_neInt64 x# y# of
0 -> False
_ -> True
geInt64# :: Int64# -> Int64# -> Bool
geInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_geInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
geInt64# x# y# =
case stg_geInt64 x# y# of
0 -> False
_ -> True
gtInt64# :: Int64# -> Int64# -> Bool
gtInt64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_gtInt64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
gtInt64# x# y# =
case stg_gtInt64 x# y# of
0 -> False
_ -> True
plusInt64# :: Int64# -> Int64# -> Int64#
plusInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_plusInt64 a# b#
))
of
case stg_plusInt64 a# b# of
I64# i# -> i#
minusInt64# :: Int64# -> Int64# -> Int64#
minusInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_minusInt64 a# b#
))
of
case stg_minusInt64 a# b# of
I64# i# -> i#
timesInt64# :: Int64# -> Int64# -> Int64#
timesInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_timesInt64 a# b#
))
of
case stg_timesInt64 a# b# of
I64# i# -> i#
quotInt64# :: Int64# -> Int64# -> Int64#
quotInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_quotInt64 a# b#
))
of
case stg_quotInt64 a# b# of
I64# i# -> i#
remInt64# :: Int64# -> Int64# -> Int64#
remInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_remInt64 a# b#
))
of
case stg_remInt64 a# b# of
I64# i# -> i#
negateInt64# :: Int64# -> Int64#
negateInt64# a# =
case
(unsafePerformIO (_ccall_
stg_negateInt64 a#
))
of
case stg_negateInt64 a# of
I64# i# -> i#
and64# :: Word64# -> Word64# -> Word64#
and64# a# b# =
case
(unsafePerformIO (_ccall_
stg_and64 a# b#
))
of
case stg_and64 a# b# of
W64# w# -> w#
or64# :: Word64# -> Word64# -> Word64#
or64# a# b# =
case
(unsafePerformIO (_ccall_
stg_or64 a# b#
))
of
case stg_or64 a# b# of
W64# w# -> w#
xor64# :: Word64# -> Word64# -> Word64#
xor64# a# b# =
case
(unsafePerformIO (_ccall_
stg_xor64 a# b#
))
of
case stg_xor64 a# b# of
W64# w# -> w#
not64# :: Word64# -> Word64#
not64# a# =
case
(unsafePerformIO (_ccall_
stg_not64 a#
))
of
case stg_not64 a# of
W64# w# -> w#
shiftL64# :: Word64# -> Int# -> Word64#
shiftL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_shiftL64 a# b#
))
of
case stg_shiftL64 a# b# of
W64# w# -> w#
iShiftL64# :: Int64# -> Int# -> Int64#
iShiftL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_iShiftL64 a# b#
))
of
case stg_iShiftL64 a# b# of
I64# i# -> i#
iShiftRL64# :: Int64# -> Int# -> Int64#
iShiftRL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_iShiftRL64 a# b#
))
of
case stg_iShiftRL64 a# b# of
I64# i# -> i#
iShiftRA64# :: Int64# -> Int# -> Int64#
iShiftRA64# a# b# =
case
(unsafePerformIO (_ccall_
stg_iShiftRA64 a# b#
))
of
case stg_iShiftRA64 a# b# of
I64# i# -> i#
shiftRL64# :: Word64# -> Int# -> Word64#
shiftRL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_shif
R
tL64 a# b#
))
of
case stg_shift
R
L64 a# b# of
W64# w# -> w#
int64ToInt# :: Int64# -> Int#
int64ToInt# i64# =
case
(unsafePerformIO (_ccall_
stg_int64ToInt i64#
))
of
case stg_int64ToInt i64# of
I# i# -> i#
wordToWord64# :: Word# -> Word64#
wordToWord64# w# =
case
(unsafePerformIO (_ccall_
stg_wordToWord64 w#
))
of
case stg_wordToWord64 w# of
W64# w64# -> w64#
word64ToInt64# :: Word64# -> Int64#
word64ToInt64# w# =
case
(unsafePerformIO (_ccall_
stg_word64ToInt64 w#
))
of
case stg_word64ToInt64 w# of
I64# i# -> i#
int64ToWord64# :: Int64# -> Word64#
int64ToWord64# i# =
case
(unsafePerformIO (_ccall_
stg_int64ToWord64 i#
))
of
case stg_int64ToWord64 i# of
W64# w# -> w#
intToInt64# :: Int# -> Int64#
intToInt64# i# =
case
(unsafePerformIO (_ccall_
stg_intToInt64 i#
))
of
case stg_intToInt64 i# of
I64# i64# -> i64#
foreign import "stg_intToInt64" stg_intToInt64 :: Int# -> Int64
foreign import "stg_int64ToWord64" stg_int64ToWord64 :: Int64# -> Word64
foreign import "stg_word64ToInt64" stg_word64ToInt64 :: Word64# -> Int64
foreign import "stg_wordToWord64" stg_wordToWord64 :: Word# -> Word64
foreign import "stg_int64ToInt" stg_int64ToInt :: Int64# -> Int
foreign import "stg_shiftRL64" stg_shiftRL64 :: Word64# -> Int# -> Word64
foreign import "stg_iShiftRA64" stg_iShiftRA64 :: Int64# -> Int# -> Int64
foreign import "stg_iShiftRL64" stg_iShiftRL64 :: Int64# -> Int# -> Int64
foreign import "stg_iShiftL64" stg_iShiftL64 :: Int64# -> Int# -> Int64
foreign import "stg_shiftL64" stg_shiftL64 :: Word64# -> Int# -> Word64
foreign import "stg_not64" stg_not64 :: Word64# -> Word64
foreign import "stg_xor64" stg_xor64 :: Word64# -> Word64# -> Word64
foreign import "stg_or64" stg_or64 :: Word64# -> Word64# -> Word64
foreign import "stg_and64" stg_and64 :: Word64# -> Word64# -> Word64
foreign import "stg_negateInt64" stg_negateInt64 :: Int64# -> Int64
foreign import "stg_remInt64" stg_remInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_quotInt64" stg_quotInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_timesInt64" stg_timesInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_minusInt64" stg_minusInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_plusInt64" stg_plusInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_gtInt64" stg_gtInt64 :: Int64# -> Int64# -> Int
foreign import "stg_geInt64" stg_geInt64 :: Int64# -> Int64# -> Int
foreign import "stg_neInt64" stg_neInt64 :: Int64# -> Int64# -> Int
foreign import "stg_eqInt64" stg_eqInt64 :: Int64# -> Int64# -> Int
foreign import "stg_leInt64" stg_leInt64 :: Int64# -> Int64# -> Int
foreign import "stg_ltInt64" stg_ltInt64 :: Int64# -> Int64# -> Int
#endif
--
...
...
This diff is collapsed.
Click to expand it.
ghc/lib/exts/Word.lhs
+
67
−
49
View file @
ef76f766
...
...
@@ -1004,132 +1004,150 @@ compareWord64# i# j#
-- Word64# primop wrappers:
ltWord64# :: Word64# -> Word64# -> Bool
ltWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_ltWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
ltWord64# x# y# =
case stg_ltWord64 x# y# of
0 -> False
_ -> True
leWord64# :: Word64# -> Word64# -> Bool
leWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_leWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
leWord64# x# y# =
case stg_leWord64 x# y# of
0 -> False
_ -> True
eqWord64# :: Word64# -> Word64# -> Bool
eqWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_eqWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
eqWord64# x# y# =
case stg_eqWord64 x# y# of
0 -> False
_ -> True
neWord64# :: Word64# -> Word64# -> Bool
neWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_neWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
neWord64# x# y# =
case stg_neWord64 x# y# of
0 -> False
_ -> True
geWord64# :: Word64# -> Word64# -> Bool
geWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_geWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
geWord64# x# y# =
case stg_geWord64 x# y# of
0 -> False
_ -> True
gtWord64# :: Word64# -> Word64# -> Bool
gtWord64# x# y# = unsafePerformIO $ do
v <- _ccall_ stg_gtWord64 x# y#
case (v::Int) of
0 -> return False
_ -> return True
gtWord64# x# y# =
case stg_gtWord64 x# y# of
0 -> False
_ -> True
plusInt64# :: Int64# -> Int64# -> Int64#
plusInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_plusInt64 a# b#
))
of
case stg_plusInt64 a# b# of
I64# i# -> i#
minusInt64# :: Int64# -> Int64# -> Int64#
minusInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_minusInt64 a# b#
))
of
case stg_minusInt64 a# b# of
I64# i# -> i#
timesInt64# :: Int64# -> Int64# -> Int64#
timesInt64# a# b# =
case
(unsafePerformIO (_ccall_
stg_timesInt64 a# b#
))
of
case stg_timesInt64 a# b# of
I64# i# -> i#
quotWord64# :: Word64# -> Word64# -> Word64#
quotWord64# a# b# =
case
(unsafePerformIO (_ccall_
stg_quotWord64 a# b#
))
of
case stg_quotWord64 a# b# of
W64# w# -> w#
remWord64# :: Word64# -> Word64# -> Word64#
remWord64# a# b# =
case
(unsafePerformIO (_ccall_
stg_remWord64 a# b#
))
of
case stg_remWord64 a# b# of
W64# w# -> w#
negateInt64# :: Int64# -> Int64#
negateInt64# a# =
case
(unsafePerformIO (_ccall_
stg_negateInt64 a#
))
of
case stg_negateInt64 a# of
I64# i# -> i#
and64# :: Word64# -> Word64# -> Word64#
and64# a# b# =
case
(unsafePerformIO (_ccall_
stg_and64 a# b#
))
of
case stg_and64 a# b# of
W64# w# -> w#
or64# :: Word64# -> Word64# -> Word64#
or64# a# b# =
case
(unsafePerformIO (_ccall_
stg_or64 a# b#
))
of
case stg_or64 a# b# of
W64# w# -> w#
xor64# :: Word64# -> Word64# -> Word64#
xor64# a# b# =
case
(unsafePerformIO (_ccall_
stg_xor64 a# b#
))
of
case stg_xor64 a# b# of
W64# w# -> w#
not64# :: Word64# -> Word64#
not64# a# =
case
(unsafePerformIO (_ccall_
stg_not64 a#
))
of
case stg_not64 a# of
W64# w# -> w#
shiftL64# :: Word64# -> Int# -> Word64#
shiftL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_shiftL64 a# b#
))
of
case stg_shiftL64 a# b# of
W64# w# -> w#
shiftRL64# :: Word64# -> Int# -> Word64#
shiftRL64# a# b# =
case
(unsafePerformIO (_ccall_
stg_shiftRL64 a# b#
))
of
case stg_shiftRL64 a# b# of
W64# w# -> w#
word64ToWord# :: Word64# -> Word#
word64ToWord# w64# =
case
(unsafePerformIO (_ccall_
stg_word64ToWord w64#
))
of
case stg_word64ToWord w64# of
W# w# -> w#
wordToWord64# :: Word# -> Word64#
wordToWord64# w# =
case
(unsafePerformIO (_ccall_
stg_wordToWord64 w#
))
of
case stg_wordToWord64 w# of
W64# w64# -> w64#
word64ToInt64# :: Word64# -> Int64#
word64ToInt64# w64# =
case
(unsafePerformIO (_ccall_
stg_word64ToInt64 w64#
))
of
case stg_word64ToInt64 w64# of
I64# i# -> i#
int64ToWord64# :: Int64# -> Word64#
int64ToWord64# i64# =
case
(unsafePerformIO (_ccall_
stg_int64ToWord64 i64#
))
of
case stg_int64ToWord64 i64# of
W64# w# -> w#
intToInt64# :: Int# -> Int64#
intToInt64# i# =
case
(unsafePerformIO (_ccall_
stg_intToInt64 i#
))
of
case stg_intToInt64 i# of
I64# i64# -> i64#
foreign import "stg_intToInt64" stg_intToInt64 :: Int# -> Int64
foreign import "stg_int64ToWord64" stg_int64ToWord64 :: Int64# -> Word64
foreign import "stg_word64ToInt64" stg_word64ToInt64 :: Word64# -> Int64
foreign import "stg_wordToWord64" stg_wordToWord64 :: Word# -> Word64
foreign import "stg_word64ToWord" stg_word64ToWord :: Word64# -> Word
foreign import "stg_shiftRL64" stg_shiftRL64 :: Word64# -> Int# -> Word64
foreign import "stg_shiftL64" stg_shiftL64 :: Word64# -> Int# -> Word64
foreign import "stg_not64" stg_not64 :: Word64# -> Word64
foreign import "stg_xor64" stg_xor64 :: Word64# -> Word64# -> Word64
foreign import "stg_or64" stg_or64 :: Word64# -> Word64# -> Word64
foreign import "stg_and64" stg_and64 :: Word64# -> Word64# -> Word64
foreign import "stg_negateInt64" stg_negateInt64 :: Int64# -> Int64
foreign import "stg_remWord64" stg_remWord64 :: Word64# -> Word64# -> Word64
foreign import "stg_quotWord64" stg_quotWord64 :: Word64# -> Word64# -> Word64
foreign import "stg_timesInt64" stg_timesInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_minusInt64" stg_minusInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_plusInt64" stg_plusInt64 :: Int64# -> Int64# -> Int64
foreign import "stg_gtWord64" stg_gtWord64 :: Word64# -> Word64# -> Int
foreign import "stg_geWord64" stg_geWord64 :: Word64# -> Word64# -> Int
foreign import "stg_neWord64" stg_neWord64 :: Word64# -> Word64# -> Int
foreign import "stg_eqWord64" stg_eqWord64 :: Word64# -> Word64# -> Int
foreign import "stg_leWord64" stg_leWord64 :: Word64# -> Word64# -> Int
foreign import "stg_ltWord64" stg_ltWord64 :: Word64# -> Word64# -> Int
#endif
instance Enum Word64 where
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment