BSD 4 release
[unix-history] / usr / src / cmd / lisp / inewint.s
index 24406a5..eeb83a4 100644 (file)
@@ -1,11 +1,32 @@
+       .asciz  "@(#)inewint.s  34.2    10/9/80"
        .globl  _inewint
        .globl  _inewint
+       .globl  _blzero
+       .data   0
+cntloc:        .long   0
+       .text
 _inewint:.word 0
 _inewint:.word 0
-       cvtlb   4(ap),r0
-       bvs     nofit
-       ashl    $2,4(ap),r0
-       addl2   $1024,r0
+#      movab   cntloc,r0               # used when profiling
+#      jsb     mcount
+       movl    4(ap),r0
+#      cvtlb   r0,r0
+#      bvs     nottiny
+#      moval   Fixzero[r0],r0
+#      ret
+# nottiny:
+       cmpl    r0,$1024
+       jgeq    alloc
+       cmpl    r0,$-1024
+       jlss    alloc
+       moval   Fixzero[r0],r0
        ret
        ret
-nofit:
+alloc:
        calls   $0,_newint
        movl    4(ap),0(r0)
        ret
        calls   $0,_newint
        movl    4(ap),0(r0)
        ret
+_blzero:                               # blzero(where,howmuch)
+                                       # char *where;
+                                       # zeroes a block of length howmuch
+                                       # beginning at where.
+       .word   0
+       movc5   $0,*4(ap),$0,8(ap),*4(ap)
+       ret