1 ADD_1
: dd
01010101h
, 01010101h
2 MASK_AND
: dd
7f7f7f7fh
, 7f7f7f7fh
3 PLUS_384
: dd
01800180h
, 01800180h
4 PLUS_128
: dd
00800080h
, 00800080h
6 %assign LocalFrameSize
0
7 %assign RegisterStorageSize
16
10 %assign source LocalFrameSize
+ RegisterStorageSize
+ 4
11 %assign dest LocalFrameSize
+ RegisterStorageSize
+ 8
12 %assign lx2 LocalFrameSize
+ RegisterStorageSize
+ 12
13 %assign h LocalFrameSize
+ RegisterStorageSize
+ 16
15 ; Locals
(on local stack frame
)
18 ; extern void C rec_mmx
(
19 ; unsigned char
*source
,
20 ; unsigned char
*dest
,
24 ; The local variables are on the stack
,
83 ;
sub esp
, LocalFrameSize
105 ;
add esp
, LocalFrameSize
114 %assign RegisterStorageSize
20
115 %assign source LocalFrameSize
+ RegisterStorageSize
+ 4
116 %assign dest LocalFrameSize
+ RegisterStorageSize
+ 8
117 %assign
lx LocalFrameSize
+ RegisterStorageSize
+ 12
118 %assign lx2 LocalFrameSize
+ RegisterStorageSize
+ 16
119 %assign h LocalFrameSize
+ RegisterStorageSize
+ 20
128 mov esi
, [esp+source
]
187 mov esi
, [esp+source
]
223 %assign RegisterStorageSize
20
224 %assign rfp LocalFrameSize
+ RegisterStorageSize
+ 4
225 %assign bp LocalFrameSize
+ RegisterStorageSize
+ 8
226 %assign iincr LocalFrameSize
+ RegisterStorageSize
+ 12
228 ; FIXME clipping needs to
be done
240 ; movq mm7
, [PLUS_384
]
244 movq mm0
, [edi
] ; get dest