Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/system/Basis/Implementation/word32.sml
ViewVC logotype

Annotation of /sml/trunk/src/system/Basis/Implementation/word32.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 429 - (view) (download)
Original Path: sml/branches/SMLNJ/src/system/Basis/Implementation/word32.sml

1 : monnier 416 (* word32.sml
2 :     *
3 :     * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
4 :     *
5 :     *)
6 :    
7 :     structure Word32Imp : WORD =
8 :     struct
9 :     infix 7 * div mod
10 :     infix 6 + -
11 :     infix 4 > < >= <=
12 :    
13 :     structure W32 = InlineT.Word32
14 :    
15 : monnier 429 type word = Word32.word
16 : monnier 416
17 :     val wordSize = 32
18 :    
19 :     val toLargeWord : word -> LargeWord.word = W32.toLargeWord
20 :     val toLargeWordX : word -> LargeWord.word = W32.toLargeWordX
21 :     val fromLargeWord : LargeWord.word -> word = W32.fromLargeWord
22 :    
23 :     val toLargeInt = W32.toLargeInt
24 :     val toLargeIntX = W32.toLargeIntX
25 :     val fromLargeInt = W32.fromLargeInt
26 :    
27 :     val toInt : word -> int = W32.toInt
28 :     val toIntX : word -> int = W32.toIntX
29 :     val fromInt : int -> word = W32.fromInt
30 :    
31 :     val orb : word * word -> word = W32.orb
32 :     val xorb : word * word -> word = W32.xorb
33 :     val andb : word * word -> word = W32.andb
34 :     val notb : word -> word = W32.notb
35 :    
36 :     val op * : word * word -> word = W32.*
37 :     val op + : word * word -> word = W32.+
38 :     val op - : word * word -> word = W32.-
39 :     val op div : word * word -> word = W32.div
40 :     fun op mod(a:word,b:word):word = a-(a div b)*b
41 :    
42 :     fun compare (w1, w2) =
43 :     if (W32.<(w1, w2)) then LESS
44 :     else if (W32.>(w1, w2)) then GREATER
45 :     else EQUAL
46 :     val op > : word * word -> bool = W32.>
47 :     val op >= : word * word -> bool = W32.>=
48 :     val op < : word * word -> bool = W32.<
49 :     val op <= : word * word -> bool = W32.<=
50 :    
51 :     val << = W32.chkLshift
52 :     val >> = W32.chkRshiftl
53 :     val ~>> = W32.chkRshift
54 :    
55 :     fun min (w1, w2) = if (w1 < w2) then w1 else w2
56 :     fun max (w1, w2) = if (w1 > w2) then w1 else w2
57 :    
58 :     val fmt = NumFormat.fmtWord
59 :     val toString = fmt StringCvt.HEX
60 :    
61 :     val scan = NumScan.scanWord
62 :     val fromString = PreBasis.scanString (scan StringCvt.HEX)
63 :    
64 :     end (* structure Word32 *)
65 :    
66 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0