close Warning: Can't synchronize with repository "(default)" (/project/movitz/svn does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 3 and Version 4 of InlineAssembly


Ignore:
Timestamp:
04/05/07 20:09:25 (18 years ago)
Author:
sabetts
Comment:

replace function with truely gc safe version

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified InlineAssembly

    v3 v4  
    8787      (:movl #xA0000 :ebx)
    8888      ;; Ordinarily ecx is the counting register but it's the only
    89       ;; safe one so use it for the pixel value and use :edx to count since
    90       ;; the number never goes past 16000, which is a valid fixnum.
     89      ;; safe one so use it for the pixel value and use :edx to count
     90      ;; since the number counts by 4s, the bottom 2 bits will be 0,
     91      ;; which makes it a valid fixnum.
    9192      (:movl 0 :edx)
    9293      loop
    93       (:movl (:eax (:edx 4) (:offset movitz-basic-vector data)) :ecx)
    94       (#.movitz:*compiler-physical-segment-prefix* :movl :ecx (:ebx (:edx 4)))
    95       (:incl :edx)
    96       (:cmpl 16000 :edx)
     94      (:movl (:eax :edx (:offset movitz-basic-vector data)) :ecx)
     95      (#.movitz:*compiler-physical-segment-prefix* :movl :ecx (:ebx :edx))
     96      (:addl 4 :edx)
     97      (:cmpl 64000 :edx)
    9798      (:jnz 'loop))
    9899    (values)))