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.
- 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
-
v3
|
v4
|
|
87 | 87 | (:movl #xA0000 :ebx) |
88 | 88 | ;; 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. |
91 | 92 | (:movl 0 :edx) |
92 | 93 | 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) |
97 | 98 | (:jnz 'loop)) |
98 | 99 | (values))) |