Subversion Repositories Kolibri OS

Rev

Rev 8210 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8210 Rev 9172
Line 7... Line 7...
7
; licensing conditions		
7
; licensing conditions		
8
;
8
;
9
; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission
9
; Most routines are (c) Glenn Fiedler (ptc@gaffer.org), used with permission
10
; 
10
; 
Line 11... Line -...
11
 
-
 
12
	
11
 
Line 13... Line -...
13
BITS 32
-
 
14
 
-
 
15
GLOBAL _ConvertX86p32_32BGR888
-
 
16
GLOBAL _ConvertX86p32_32RGBA888
-
 
17
GLOBAL _ConvertX86p32_32BGRA888
-
 
18
GLOBAL _ConvertX86p32_24RGB888	
-
 
19
GLOBAL _ConvertX86p32_24BGR888
-
 
20
GLOBAL _ConvertX86p32_16RGB565
-
 
21
GLOBAL _ConvertX86p32_16BGR565
-
 
22
GLOBAL _ConvertX86p32_16RGB555
12
BITS 32
Line -... Line 13...
-
 
13
 
-
 
14
%include "common.inc"
-
 
15
 
-
 
16
SDL_FUNC _ConvertX86p32_32BGR888
-
 
17
SDL_FUNC _ConvertX86p32_32RGBA888
-
 
18
SDL_FUNC _ConvertX86p32_32BGRA888
-
 
19
SDL_FUNC _ConvertX86p32_24RGB888	
-
 
20
SDL_FUNC _ConvertX86p32_24BGR888
-
 
21
SDL_FUNC _ConvertX86p32_16RGB565
23
GLOBAL _ConvertX86p32_16BGR555
22
SDL_FUNC _ConvertX86p32_16BGR565
Line 24... Line 23...
24
GLOBAL _ConvertX86p32_8RGB332
23
SDL_FUNC _ConvertX86p32_16RGB555
Line 25... Line -...
25
 
-
 
26
EXTERN _x86return
24
SDL_FUNC _ConvertX86p32_16BGR555
27
		
25
SDL_FUNC _ConvertX86p32_8RGB332
28
SECTION .text
26
 
29
 
27
SECTION .text
30
 
28
 
Line 41... Line 39...
41
 
39
 
42
    ; check short
40
    ; check short
43
    cmp ecx,BYTE 32
41
    cmp ecx,BYTE 32
Line 44... Line 42...
44
    ja .L3
42
    ja .L3
45
 
43
 
46
.L1 ; short loop
44
.L1: ; short loop
47
    mov edx,[esi]
45
    mov edx,[esi]
48
    bswap edx
46
    bswap edx
49
    ror edx,8
47
    ror edx,8
50
    mov [edi],edx
48
    mov [edi],edx
51
    add esi,BYTE 4
49
    add esi,BYTE 4
52
    add edi,BYTE 4
50
    add edi,BYTE 4
53
    dec ecx
51
    dec ecx
54
    jnz .L1
52
    jnz .L1
Line 55... Line 53...
55
.L2
53
.L2:
56
    jmp _x86return
54
    retn
Line 57... Line 55...
57
 
55
 
58
.L3 ; save ebp
56
.L3: ; save ebp
59
    push ebp
57
    push ebp
Line 60... Line 58...
60
 
58
 
61
    ; unroll four times
59
    ; unroll four times
Line 62... Line 60...
62
    mov ebp,ecx
60
    mov ebp,ecx
63
    shr ebp,2
61
    shr ebp,2
Line 64... Line 62...
64
    
62
    
Line 65... Line 63...
65
    ; save count
63
    ; save count
Line 100... Line 98...
100
    ; check tail
98
    ; check tail
101
    pop ecx
99
    pop ecx
102
    and ecx,BYTE 11b
100
    and ecx,BYTE 11b
103
    jz .L6
101
    jz .L6
Line 104... Line 102...
104
 
102
 
105
.L5 ; tail loop
103
.L5: ; tail loop
106
    mov edx,[esi]
104
    mov edx,[esi]
107
    bswap edx
105
    bswap edx
108
    ror edx,8
106
    ror edx,8
109
    mov [edi],edx
107
    mov [edi],edx
110
    add esi,BYTE 4
108
    add esi,BYTE 4
111
    add edi,BYTE 4
109
    add edi,BYTE 4
112
    dec ecx
110
    dec ecx
Line 113... Line 111...
113
    jnz .L5
111
    jnz .L5
114
 
112
 
Line 115... Line 113...
115
.L6 pop ebp
113
.L6: pop ebp
Line 116... Line 114...
116
    jmp _x86return
114
    retn
117
	
115
	
118
 
116
 
Line 119... Line 117...
119
	
117
	
120
		
118
		
121
_ConvertX86p32_32RGBA888:
119
_ConvertX86p32_32RGBA888:
122
	
120
	
123
    ; check short
121
    ; check short
124
    cmp ecx,BYTE 32
122
    cmp ecx,BYTE 32
125
    ja .L3
123
    ja .L3
126
 
124
 
127
.L1 ; short loop
125
.L1: ; short loop
128
    mov edx,[esi]
126
    mov edx,[esi]
Line 129... Line 127...
129
    rol edx,8
127
    rol edx,8
130
    mov [edi],edx
128
    mov [edi],edx
Line 131... Line 129...
131
    add esi,BYTE 4
129
    add esi,BYTE 4
132
    add edi,BYTE 4
130
    add edi,BYTE 4
133
    dec ecx
131
    dec ecx
Line 134... Line 132...
134
    jnz .L1
132
    jnz .L1
135
.L2
133
.L2:
Line 136... Line 134...
136
    jmp _x86return
134
    retn
137
 
135
 
Line 138... Line 136...
138
.L3 ; save ebp
136
.L3: ; save ebp
139
    push ebp
137
    push ebp
Line 172... Line 170...
172
    ; check tail
170
    ; check tail
173
    pop ecx
171
    pop ecx
174
    and ecx,BYTE 11b
172
    and ecx,BYTE 11b
175
    jz .L6
173
    jz .L6
Line 176... Line 174...
176
 
174
 
177
.L5 ; tail loop
175
.L5: ; tail loop
178
    mov edx,[esi]
176
    mov edx,[esi]
179
    rol edx,8
177
    rol edx,8
180
    mov [edi],edx
178
    mov [edi],edx
181
    add esi,BYTE 4
179
    add esi,BYTE 4
182
    add edi,BYTE 4
180
    add edi,BYTE 4
183
    dec ecx
181
    dec ecx
Line 184... Line 182...
184
    jnz .L5
182
    jnz .L5
185
 
183
 
Line 186... Line 184...
186
.L6 pop ebp
184
.L6: pop ebp
Line 187... Line 185...
187
    jmp _x86return
185
    retn
188
 
186
 
189
	
187
	
Line 190... Line 188...
190
 
188
 
191
 
189
 
192
_ConvertX86p32_32BGRA888:
190
_ConvertX86p32_32BGRA888:
193
 
191
 
194
    ; check short
192
    ; check short
195
    cmp ecx,BYTE 32
193
    cmp ecx,BYTE 32
196
    ja .L3
194
    ja .L3
197
 
195
 
198
.L1 ; short loop
196
.L1: ; short loop
199
    mov edx,[esi]
197
    mov edx,[esi]
Line 200... Line 198...
200
    bswap edx
198
    bswap edx
201
    mov [edi],edx
199
    mov [edi],edx
Line 202... Line 200...
202
    add esi,BYTE 4
200
    add esi,BYTE 4
203
    add edi,BYTE 4
201
    add edi,BYTE 4
204
    dec ecx
202
    dec ecx
Line 205... Line 203...
205
    jnz .L1
203
    jnz .L1
206
.L2
204
.L2:
Line 207... Line 205...
207
    jmp _x86return
205
    retn
208
 
206
 
Line 209... Line 207...
209
.L3 ; save ebp
207
.L3: ; save ebp
210
    push ebp
208
    push ebp
Line 245... Line 243...
245
    ; check tail
243
    ; check tail
246
    pop ecx
244
    pop ecx
247
    and ecx,BYTE 11b
245
    and ecx,BYTE 11b
248
    jz .L6
246
    jz .L6
Line 249... Line 247...
249
 
247
 
250
.L5 ; tail loop
248
.L5: ; tail loop
251
    mov edx,[esi]
249
    mov edx,[esi]
252
    bswap edx
250
    bswap edx
253
    mov [edi],edx
251
    mov [edi],edx
254
    add esi,BYTE 4
252
    add esi,BYTE 4
255
    add edi,BYTE 4
253
    add edi,BYTE 4
256
    dec ecx
254
    dec ecx
Line 257... Line 255...
257
    jnz .L5
255
    jnz .L5
258
 
256
 
Line 259... Line 257...
259
.L6 pop ebp
257
.L6: pop ebp
Line 268... Line 266...
268
 
266
 
269
	; check short
267
	; check short
270
	cmp ecx,BYTE 32
268
	cmp ecx,BYTE 32
Line 271... Line 269...
271
	ja .L3
269
	ja .L3
272
 
270
 
273
.L1	; short loop
271
.L1:	; short loop
274
	mov al,[esi]
272
	mov al,[esi]
275
	mov bl,[esi+1]
273
	mov bl,[esi+1]
276
	mov dl,[esi+2]
274
	mov dl,[esi+2]
277
	mov [edi],al
275
	mov [edi],al
278
	mov [edi+1],bl
276
	mov [edi+1],bl
279
	mov [edi+2],dl
277
	mov [edi+2],dl
280
	add esi,BYTE 4
278
	add esi,BYTE 4
281
	add edi,BYTE 3
279
	add edi,BYTE 3
282
	dec ecx
280
	dec ecx
283
	jnz .L1
281
	jnz .L1
Line 284... Line 282...
284
.L2 
282
.L2:
285
	jmp _x86return
283
	retn
286
 
284
 
287
.L3	;	 head
285
.L3:	;	 head
288
	mov edx,edi
286
	mov edx,edi
289
	and edx,BYTE 11b
287
	and edx,BYTE 11b
Line 297... Line 295...
297
	add esi,BYTE 4
295
	add esi,BYTE 4
298
	add edi,BYTE 3
296
	add edi,BYTE 3
299
	dec ecx
297
	dec ecx
300
	jmp SHORT .L3
298
	jmp SHORT .L3
Line 301... Line 299...
301
 
299
 
302
.L4 ; unroll 4 times
300
.L4: ; unroll 4 times
303
	push ebp
301
	push ebp
304
	mov ebp,ecx
302
	mov ebp,ecx
Line 305... Line 303...
305
	shr ebp,2
303
	shr ebp,2
306
 
304
 
Line 307... Line 305...
307
    ; save count
305
    ; save count
308
	push ecx
306
	push ecx
Line 309... Line 307...
309
 
307
 
310
.L5     mov eax,[esi]                   ; first dword            eax = [A][R][G][B]
308
.L5:    mov eax,[esi]                   ; first dword            eax = [A][R][G][B]
Line 339... Line 337...
339
    ; check tail
337
    ; check tail
340
	pop ecx
338
	pop ecx
341
	and ecx,BYTE 11b
339
	and ecx,BYTE 11b
342
	jz .L7
340
	jz .L7
Line 343... Line 341...
343
 
341
 
344
.L6 ; tail loop
342
.L6: ; tail loop
345
	mov al,[esi]
343
	mov al,[esi]
346
	mov bl,[esi+1]
344
	mov bl,[esi+1]
347
	mov dl,[esi+2]
345
	mov dl,[esi+2]
348
	mov [edi],al
346
	mov [edi],al
Line 351... Line 349...
351
	add esi,BYTE 4
349
	add esi,BYTE 4
352
	add edi,BYTE 3
350
	add edi,BYTE 3
353
	dec ecx
351
	dec ecx
354
	jnz .L6
352
	jnz .L6
Line 355... Line 353...
355
 
353
 
356
.L7	pop ebp
354
.L7:	pop ebp
Line 357... Line 355...
357
	jmp _x86return
355
	retn
Line 365... Line 363...
365
 
363
 
366
	; check short
364
	; check short
367
	cmp ecx,BYTE 32
365
	cmp ecx,BYTE 32
Line 368... Line -...
368
	ja .L3
-
 
369
 
366
	ja .L3
370
	
367
 
371
.L1	; short loop
368
.L1:	; short loop
372
	mov dl,[esi]
369
	mov dl,[esi]
373
	mov bl,[esi+1]
370
	mov bl,[esi+1]
374
	mov al,[esi+2]
371
	mov al,[esi+2]
375
	mov [edi],al
372
	mov [edi],al
376
	mov [edi+1],bl
373
	mov [edi+1],bl
377
	mov [edi+2],dl
374
	mov [edi+2],dl
378
	add esi,BYTE 4
375
	add esi,BYTE 4
379
	add edi,BYTE 3
376
	add edi,BYTE 3
380
	dec ecx
377
	dec ecx
381
	jnz .L1
378
	jnz .L1
Line 382... Line 379...
382
.L2
379
.L2:
383
	jmp _x86return
380
	retn
384
 
381
 
385
.L3 ; head
382
.L3: ; head
386
	mov edx,edi
383
	mov edx,edi
387
	and edx,BYTE 11b
384
	and edx,BYTE 11b
Line 395... Line 392...
395
	add esi,BYTE 4
392
	add esi,BYTE 4
396
	add edi,BYTE 3
393
	add edi,BYTE 3
397
	dec ecx
394
	dec ecx
398
	jmp SHORT .L3
395
	jmp SHORT .L3
Line 399... Line 396...
399
 
396
 
400
.L4	; unroll 4 times
397
.L4:	; unroll 4 times
401
	push ebp
398
	push ebp
402
	mov ebp,ecx
399
	mov ebp,ecx
Line 403... Line 400...
403
	shr ebp,2
400
	shr ebp,2
404
 
401
 
Line 405... Line 402...
405
	; save count
402
	; save count
406
	push ecx
403
	push ecx
407
 
404
 
Line 408... Line 405...
408
.L5     
405
.L5:
Line 439... Line 436...
439
	; check tail
436
	; check tail
440
	pop ecx
437
	pop ecx
441
	and ecx,BYTE 11b
438
	and ecx,BYTE 11b
442
	jz .L7
439
	jz .L7
Line 443... Line 440...
443
 
440
 
444
.L6	; tail loop
441
.L6:	; tail loop
445
	mov dl,[esi]
442
	mov dl,[esi]
446
	mov bl,[esi+1]
443
	mov bl,[esi+1]
447
	mov al,[esi+2]
444
	mov al,[esi+2]
448
	mov [edi],al
445
	mov [edi],al
Line 451... Line 448...
451
	add esi,BYTE 4
448
	add esi,BYTE 4
452
	add edi,BYTE 3
449
	add edi,BYTE 3
453
	dec ecx
450
	dec ecx
454
	jnz .L6
451
	jnz .L6
Line 455... Line 452...
455
 
452
 
456
.L7 
453
.L7:
457
	pop ebp
454
	pop ebp
Line 458... Line 455...
458
	jmp _x86return
455
	retn
Line 465... Line 462...
465
_ConvertX86p32_16RGB565:
462
_ConvertX86p32_16RGB565:
466
	; check short
463
	; check short
467
	cmp ecx,BYTE 16
464
	cmp ecx,BYTE 16
468
	ja .L3
465
	ja .L3
Line 469... Line 466...
469
 
466
 
470
.L1 ; short loop
467
.L1: ; short loop
471
	mov bl,[esi+0]    ; blue
468
	mov bl,[esi+0]    ; blue
472
	mov al,[esi+1]    ; green
469
	mov al,[esi+1]    ; green
473
	mov ah,[esi+2]    ; red
470
	mov ah,[esi+2]    ; red
474
	shr ah,3
471
	shr ah,3
Line 482... Line 479...
482
	add edi,BYTE 2
479
	add edi,BYTE 2
483
	dec ecx
480
	dec ecx
484
	jnz .L1
481
	jnz .L1
Line 485... Line 482...
485
 
482
 
486
.L2:				; End of short loop
483
.L2:				; End of short loop
Line 487... Line 484...
487
	jmp _x86return
484
	retn
488
 
485
 
489
	
486
	
490
.L3	; head
487
.L3:	; head
Line 491... Line 488...
491
	mov ebx,edi
488
	mov ebx,edi
Line 568... Line 565...
568
	mov [edi+1],ah
565
	mov [edi+1],ah
569
	add esi,BYTE 4
566
	add esi,BYTE 4
570
	add edi,BYTE 2
567
	add edi,BYTE 2
Line 571... Line 568...
571
 
568
 
572
.L7:	
569
.L7:	
Line 573... Line 570...
573
	jmp _x86return
570
	retn
Line 581... Line 578...
581
	
578
	
582
	; check short
579
	; check short
583
	cmp ecx,BYTE 16
580
	cmp ecx,BYTE 16
Line 584... Line 581...
584
	ja .L3
581
	ja .L3
585
 
582
 
586
.L1	; short loop
583
.L1:	; short loop
587
	mov ah,[esi+0]    ; blue
584
	mov ah,[esi+0]    ; blue
588
	mov al,[esi+1]    ; green
585
	mov al,[esi+1]    ; green
589
	mov bl,[esi+2]    ; red
586
	mov bl,[esi+2]    ; red
Line 596... Line 593...
596
	mov [edi+1],ah
593
	mov [edi+1],ah
597
	add esi,BYTE 4
594
	add esi,BYTE 4
598
	add edi,BYTE 2
595
	add edi,BYTE 2
599
	dec ecx
596
	dec ecx
600
	jnz .L1
597
	jnz .L1
601
.L2
598
.L2:
602
	jmp _x86return
599
	retn
Line 603... Line 600...
603
 
600
 
604
.L3	; head
601
.L3:	; head
605
	mov ebx,edi
602
	mov ebx,edi
606
	and ebx,BYTE 11b
603
	and ebx,BYTE 11b
607
	jz .L4   
604
	jz .L4   
608
	mov ah,[esi+0]    ; blue
605
	mov ah,[esi+0]    ; blue
Line 617... Line 614...
617
	mov [edi+1],ah
614
	mov [edi+1],ah
618
	add esi,BYTE 4
615
	add esi,BYTE 4
619
	add edi,BYTE 2
616
	add edi,BYTE 2
620
	dec ecx
617
	dec ecx
Line 621... Line 618...
621
 
618
 
622
.L4	; save count
619
.L4:	; save count
Line 623... Line 620...
623
	push ecx
620
	push ecx
624
 
621
 
Line 631... Line 628...
631
 
628
 
632
	; negative count
629
	; negative count
633
	neg ecx
630
	neg ecx
Line 634... Line 631...
634
	jmp SHORT .L6
631
	jmp SHORT .L6
635
 
632
 
636
.L5     
633
.L5:
637
	mov [edi+ecx*4-4],eax            
634
	mov [edi+ecx*4-4],eax            
Line 638... Line 635...
638
.L6     
635
.L6:
639
	mov edx,[esi+ecx*8+4]
636
	mov edx,[esi+ecx*8+4]
Line 681... Line 678...
681
	mov [edi+0],al
678
	mov [edi+0],al
682
	mov [edi+1],ah
679
	mov [edi+1],ah
683
	add esi,BYTE 4
680
	add esi,BYTE 4
684
	add edi,BYTE 2
681
	add edi,BYTE 2
Line 685... Line 682...
685
 
682
 
686
.L7 
683
.L7:
Line 687... Line 684...
687
	jmp _x86return
684
	retn
Line 695... Line 692...
695
 
692
 
696
	; check short
693
	; check short
697
	cmp ecx,BYTE 16
694
	cmp ecx,BYTE 16
Line 698... Line 695...
698
	ja .L3
695
	ja .L3
699
 
696
 
700
.L1	; short loop
697
.L1:	; short loop
701
	mov bl,[esi+0]    ; blue
698
	mov bl,[esi+0]    ; blue
702
	mov al,[esi+1]    ; green
699
	mov al,[esi+1]    ; green
703
	mov ah,[esi+2]    ; red
700
	mov ah,[esi+2]    ; red
Line 710... Line 707...
710
	mov [edi+1],ah
707
	mov [edi+1],ah
711
	add esi,BYTE 4
708
	add esi,BYTE 4
712
	add edi,BYTE 2
709
	add edi,BYTE 2
713
	dec ecx
710
	dec ecx
714
	jnz .L1
711
	jnz .L1
715
.L2
712
.L2:
716
	jmp _x86return
713
	retn
Line 717... Line 714...
717
 
714
 
718
.L3	; head
715
.L3:	; head
719
	mov ebx,edi
716
	mov ebx,edi
720
        and ebx,BYTE 11b
717
        and ebx,BYTE 11b
721
	jz .L4   
718
	jz .L4   
722
	mov bl,[esi+0]    ; blue
719
	mov bl,[esi+0]    ; blue
Line 731... Line 728...
731
	mov [edi+1],ah
728
	mov [edi+1],ah
732
	add esi,BYTE 4
729
	add esi,BYTE 4
733
	add edi,BYTE 2
730
	add edi,BYTE 2
734
	dec ecx
731
	dec ecx
Line 735... Line 732...
735
 
732
 
736
.L4	; save count
733
.L4:	; save count
Line 737... Line 734...
737
	push ecx
734
	push ecx
738
 
735
 
Line 745... Line 742...
745
 
742
 
746
	; negative counter 
743
	; negative counter 
747
	neg ecx
744
	neg ecx
Line 748... Line 745...
748
	jmp SHORT .L6
745
	jmp SHORT .L6
749
 
746
 
750
.L5     
747
.L5:
751
	mov [edi+ecx*4-4],eax
748
	mov [edi+ecx*4-4],eax
Line 752... Line 749...
752
.L6     
749
.L6:
753
	mov eax,[esi+ecx*8]
750
	mov eax,[esi+ecx*8]
Line 792... Line 789...
792
	mov [edi+0],al
789
	mov [edi+0],al
793
	mov [edi+1],ah
790
	mov [edi+1],ah
794
	add esi,BYTE 4
791
	add esi,BYTE 4
795
	add edi,BYTE 2
792
	add edi,BYTE 2
Line 796... Line 793...
796
 
793
 
797
.L7
794
.L7:
Line 798... Line 795...
798
	jmp _x86return
795
	retn
Line 807... Line 804...
807
	; check short
804
	; check short
808
	cmp ecx,BYTE 16
805
	cmp ecx,BYTE 16
809
	ja .L3
806
	ja .L3
Line 810... Line 807...
810
 
807
 
811
 
808
 
812
.L1	; short loop
809
.L1:	; short loop
813
	mov ah,[esi+0]    ; blue
810
	mov ah,[esi+0]    ; blue
814
	mov al,[esi+1]    ; green
811
	mov al,[esi+1]    ; green
815
	mov bl,[esi+2]    ; red
812
	mov bl,[esi+2]    ; red
Line 822... Line 819...
822
	mov [edi+1],ah
819
	mov [edi+1],ah
823
	add esi,BYTE 4
820
	add esi,BYTE 4
824
	add edi,BYTE 2
821
	add edi,BYTE 2
825
	dec ecx
822
	dec ecx
826
	jnz .L1
823
	jnz .L1
827
.L2 
824
.L2:
828
	jmp _x86return
825
	retn
Line 829... Line 826...
829
 
826
 
830
.L3	; head
827
.L3:	; head
831
	mov ebx,edi
828
	mov ebx,edi
832
        and ebx,BYTE 11b
829
        and ebx,BYTE 11b
833
	jz .L4   
830
	jz .L4   
834
	mov ah,[esi+0]    ; blue
831
	mov ah,[esi+0]    ; blue
Line 843... Line 840...
843
	mov [edi+1],ah
840
	mov [edi+1],ah
844
	add esi,BYTE 4
841
	add esi,BYTE 4
845
	add edi,BYTE 2
842
	add edi,BYTE 2
846
	dec ecx
843
	dec ecx
Line 847... Line 844...
847
 
844
 
848
.L4	; save count
845
.L4:	; save count
Line 849... Line 846...
849
	push ecx
846
	push ecx
850
 
847
 
Line 857... Line 854...
857
 
854
 
858
	; negative counter 
855
	; negative counter 
859
	neg ecx
856
	neg ecx
Line 860... Line 857...
860
	jmp SHORT .L6
857
	jmp SHORT .L6
861
 
858
 
862
.L5     
859
.L5:
863
	mov [edi+ecx*4-4],eax            
860
	mov [edi+ecx*4-4],eax            
Line 864... Line 861...
864
.L6     
861
.L6:
865
	mov edx,[esi+ecx*8+4]
862
	mov edx,[esi+ecx*8+4]
Line 907... Line 904...
907
	mov [edi+0],al
904
	mov [edi+0],al
908
	mov [edi+1],ah
905
	mov [edi+1],ah
909
	add esi,BYTE 4
906
	add esi,BYTE 4
910
	add edi,BYTE 2
907
	add edi,BYTE 2
Line 911... Line 908...
911
 
908
 
912
.L7
909
.L7:
Line 920... Line 917...
920
;; This routine writes FOUR pixels at once (dword) and then, if they exist
917
;; This routine writes FOUR pixels at once (dword) and then, if they exist
921
;; the trailing three pixels
918
;; the trailing three pixels
922
_ConvertX86p32_8RGB332:
919
_ConvertX86p32_8RGB332:
Line 923... Line 920...
923
 
920
 
924
	
921
	
Line 925... Line 922...
925
.L_ALIGNED
922
.L_ALIGNED:
926
	push ecx
923
	push ecx
Line 1038... Line 1035...
1038
 
1035
 
1039
	dec ecx
1036
	dec ecx
Line 1040... Line 1037...
1040
	jnz .L3
1037
	jnz .L3
1041
	
1038
	
-
 
1039
.L4:	
-
 
1040
	retn
-
 
1041
 
-
 
1042
%ifidn __OUTPUT_FORMAT__,elf32