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