pike.git
/
src
/
modules
/
Image
/
assembly.s
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/modules/Image/assembly.s:12:
global image_clear_buffer_mmx_x86asm_from global image_get_cpuid ; do not use the function from mmxlib, since that might be ; unavailable even when mmx is available. ; ; void image_get_cpuid(int oper,int *cpuid1,int *cpuid2,int *cpuid3,int *a ) ; image_get_cpuid:
-
enter
0
,
0
+
push
ebp
+
mov ebp
,
esp
pushf pop eax mov ecx, eax xor eax, 200000h push eax popf pushf pop eax xor ecx, eax test ecx, 200000h
pike.git/src/modules/Image/assembly.s:61:
pop ebx leave ret ; Clear an image to a solid color ; void image_clear_buffer_mmx_x86asm_eq( char *d, ; int npixels_div_8, ; int colv ); image_clear_buffer_mmx_x86asm_eq:
-
enter
0
,
0
+
push
ebp
+
mov ebp
,
esp
mov ecx, [ebp+12] mov eax, [ebp+16] ;; now in eax: 00 xx shl eax, 8 or eax, [ebp+16] ;; now in mm0: xx xx pinsrw mm0, eax, 0 pinsrw mm0, eax, 1 pinsrw mm0, eax, 2 pinsrw mm0, eax, 3
pike.git/src/modules/Image/assembly.s:94:
dec ecx jnz .loop emms leave ret image_clear_buffer_mmx_x86asm_from:
-
enter
0
,
0
+
push
ebp
+
mov ebp
,
esp
mov eax, [ebp+8] mov ecx, [ebp+12] movq mm0, [eax] add eax, 8 movq mm1, [eax] add eax, 8 movq mm2, [eax]
pike.git/src/modules/Image/assembly.s:133:
ret ; Add two images ; ; void image_add_buffers_mmx_x86asm( char *d, ; char *s1, char *s2, ; int npixels_mult_3_div_8 ) ; image_add_buffers_mmx_x86asm:
-
enter
0
,
0
+
push
ebp
+
mov ebp
,
esp
push ebx mov ebx, [ebp+8] mov eax, [ebp+12] mov edx, [ebp+16] mov ecx, [ebp+20] align 32 .loop: movq mm0, [edx] add edx, 8
pike.git/src/modules/Image/assembly.s:166:
; Multiply two images ; Add a fixed rgb value to an image ; ; void image_mult_buffers_mmx_x86asm( char *d, char *s1, char *s2, ; int npixels_div_4 ) ; image_mult_buffers_mmx_x86asm:
-
enter
0
,
0
+
push
ebp
+
mov ebp
,
esp
push ebx mov ebx, [ebp+8] mov eax, [ebp+12] mov edx, [ebp+16] mov ecx, [ebp+20] pxor mm4,mm4 align 32 .loop: