CVS: sml-dist/src/system/smlnj/init assembly.sig, 1.3, 1.3.26.1 core-intinf.sml, 1.5, 1.5.4.1 dummy.sml, 1.3, 1.3.26.1
David MacQueen <[email protected]> Thu, 13 Jul 2006 13:12:27 -0700
| Newsgroups | gmane.comp.lang.sml.smlnj.commits |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/smlnj/sml-dist/src/system/smlnj/init
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv30801/src/system/smlnj/init
Modified Files:
Tag: primop-branch-2
assembly.sig core-intinf.sml dummy.sml
Log Message:
fixes for new primop scheme
Index: assembly.sig
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/system/smlnj/init/assembly.sig,v
retrieving revision 1.3
retrieving revision 1.3.26.1
diff -C2 -d -r1.3 -r1.3.26.1
*** assembly.sig 1 Jun 2000 18:34:02 -0000 1.3
--- assembly.sig 13 Jul 2006 20:12:25 -0000 1.3.26.1
***************
*** 57,61 ****
type object
datatype 'a option = NONE | SOME of 'a
-
structure A :
sig
--- 57,60 ----
Index: core-intinf.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/system/smlnj/init/core-intinf.sml,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** core-intinf.sml 4 May 2005 15:43:48 -0000 1.5
--- core-intinf.sml 13 Jul 2006 20:12:25 -0000 1.5.4.1
***************
*** 108,126 ****
infixr 5 ::
! val not = InLine.inlnot
! val w31ToI32 = InLine.copy_31_32_i
! val w32ToI32 = InLine.copy_32_32_wi
! val w31ToW32 = InLine.copy_31_32_w
! val i32ToW31 = InLine.trunc_32_31_i
! val i32ToW32 = InLine.copy_32_32_iw
! val w32ToW31 = InLine.trunc_32_31_w
! val ~ = InLine.i32neg
infix || && >> ^ <<
! val op || = InLine.w32orb
! val op ^ = InLine.w32xorb
! val op && = InLine.w32andb
! val op >> = InLine.w32rshiftl
! val op << = InLine.w32lshift
(* ******************* *)
--- 108,126 ----
infixr 5 ::
! val not : bool -> bool = InLine.inlnot
! val w31ToI32 : word -> int32 = InLine.copy_31_32_i
! val w32ToI32 : word32 -> int32 = InLine.copy_32_32_wi
! val w31ToW32 : word -> word32 = InLine.copy_31_32_w
! val i32ToW31 : int32 -> word = InLine.trunc_32_31_i
! val i32ToW32 : int32 -> word32 = InLine.copy_32_32_iw
! val w32ToW31 : word32 -> word = InLine.trunc_32_31_w
! val ~ : int32 -> int32 = InLine.i32neg
infix || && >> ^ <<
! val op || : word32 * word32 -> word32 = InLine.w32orb
! val op ^ : word32 * word32 -> word32 = InLine.w32xorb
! val op && : word32 * word32 -> word32 = InLine.w32andb
! val op >> : word32 * word -> word32 = InLine.w32rshiftl
! val op << : word32 * word -> word32 = InLine.w32lshift
(* ******************* *)
***************
*** 146,153 ****
val neg_base_as_int : int = ~0x40000000
! val gap = InLine.w31sub (0w32, baseBits) (* 32 - baseBits *)
! val slc = InLine.w31sub (baseBits, gap) (* baseBits - gap *)
! fun neg64 (hi, 0w0) = (InLine.w32neg hi, 0w0)
| neg64 (hi, lo) = (InLine.w32notb hi, InLine.w32neg lo)
--- 146,153 ----
val neg_base_as_int : int = ~0x40000000
! val gap : word = InLine.w31sub (0w32, baseBits) (* 32 - baseBits *)
! val slc : word = InLine.w31sub (baseBits, gap) (* baseBits - gap *)
! fun neg64 (hi, 0w0) : word32 * word32 = (InLine.w32neg hi, 0w0)
| neg64 (hi, lo) = (InLine.w32notb hi, InLine.w32neg lo)
***************
*** 232,236 ****
digits = [] })
| copyInf64' (negative, (hi, lo)) =
! let infix <> val op <> = InLine.w31ne
val d0 = w32ToW31 (lo && 0wx3fffffff)
val d1 = w32ToW31 (((hi && 0wxfffffff) << 0w2) || (lo >> 0w30))
--- 232,237 ----
digits = [] })
| copyInf64' (negative, (hi, lo)) =
! let infix <>
! val op <> : word * word -> bool = InLine.w31ne
val d0 = w32ToW31 (lo && 0wx3fffffff)
val d1 = w32ToW31 (((hi && 0wxfffffff) << 0w2) || (lo >> 0w30))
***************
*** 331,340 ****
fun le (x, y) = not (gt (x, y))
! fun adddig (d1, d2) = let
! val sum = InLine.w31add (d1, d2)
! in
! { carry = InLine.w31ge (sum, base),
! res = InLine.w31andb (sum, maxDigit) }
! end
(* add one to nat *)
--- 332,341 ----
fun le (x, y) = not (gt (x, y))
! fun adddig (d1, d2) : {carry: bool, res: word} =
! let val sum = InLine.w31add (d1, d2)
! in
! {carry = InLine.w31ge (sum, base),
! res = InLine.w31andb (sum, maxDigit) }
! end
(* add one to nat *)
***************
*** 623,628 ****
val y = natmul (x, x)
in
! if InLine.w31eq (InLine.w31andb (n, 0w1), 0w0) then
! y
else natmul (y, m)
end
--- 624,629 ----
val y = natmul (x, x)
in
! if InLine.w31eq (InLine.w31andb (n, 0w1), 0w0)
! then y
else natmul (y, m)
end
Index: dummy.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/system/smlnj/init/dummy.sml,v
retrieving revision 1.3
retrieving revision 1.3.26.1
diff -C2 -d -r1.3 -r1.3.26.1
*** dummy.sml 1 Jun 2000 18:34:02 -0000 1.3
--- dummy.sml 13 Jul 2006 20:12:25 -0000 1.3.26.1
***************
*** 49,52 ****
end (* abstraction Assembly *)
-
-
--- 49,50 ----
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642