by schtruck » Oct 20, 2002 @ 11:03am
; 344 : r0 = *line_i++;
add r2, r11, #4
ldr r1, [r11]
; 345 : r1 = *line_i++;
ldr lr, [r2]
add r11, r2, #4
; 346 : r2=(r0>>1)&mask1;
and r2, r3, r1, lsr #1
; 347 : r3=(r1>>1)&mask1;
and r6, r3, lr, lsr #1
; 348 : r0&=mask1;
and r1, r3, r1
; 349 : r1&=mask1;
and lr, r3, lr
; 350 :
; 351 : r2+=(r2>>15);
add r2, r2, r2, lsr #15
; 352 : r3+=(r3>>15);
add r6, r6, r6, lsr #15
; 353 : r0+=(r0>>15);
add r9, r1, r1, lsr #15
; 354 : r1+=(r1>>15);
add r10, lr, lr, lsr #15
; 355 :
; 356 : r4=(r2>>2)&mask2;
; 357 : r5=(r3>>2)&mask2;
; 358 : r2&=mask2;
; 359 : r3&=mask2;
; 360 : r4+=(r5<<2);
and lr, r0, r2, lsr #2
and r1, r0, r6, lsr #2
add r1, lr, r1, lsl #2
and r2, r0, r2
and lr, r0, r6
; 361 : r2+=(r3<<2);
add r2, r2, lr, lsl #2
; 362 :
; 363 : r3=(r0>>2)&mask2;
; 364 : r5=(r1>>2)&mask2;
; 365 : r0&=mask2;
; 366 : r1&=mask2;
; 367 : r3+=(r5<<2);
and lr, r0, r10, lsr #2
and r10, r0, r10
and r6, r0, r9, lsr #2
and r9, r0, r9
add lr, r6, lr, lsl #2
; 368 : r0+=(r1<<2);
add r6, r9, r10, lsl #2
; 369 :
; 370 : *--line_o1 = hicolor[(r4&240)+((r3>>4)&15)];
mov r10, lr, lsr #4
and r10, r10, #0xF ; 0xF = 15
and r9, r1, #0xF0 ; 0xF0 = 240
add r10, r10, r9
ldr r10, [r4, +r10, lsl #2]
sub r7, r7, #4
; 371 : *--line_o1 = hicolor[(r2&240)+((r0>>4)&15)];
and r9, r2, #0xF0 ; 0xF0 = 240
str r10, [r7]
mov r10, r6, lsr #4
and r10, r10, #0xF ; 0xF = 15
add r10, r10, r9
ldr r10, [r4, +r10, lsl #2]
sub r7, r7, #4
; 372 : *--line_o1 = hicolor[((r4<<4)&240)+(r3&15)];
and r9, lr, #0xF ; 0xF = 15
str r10, [r7]
and r10, r1, #0xF ; 0xF = 15
add r10, r9, r10, lsl #4
ldr r10, [r4, +r10, lsl #2]
sub r7, r7, #4
; 373 : *--line_o1 = hicolor[((r2<<4)&240)+(r0&15)];
and r9, r6, #0xF ; 0xF = 15
str r10, [r7]
and r10, r2, #0xF ; 0xF = 15
add r10, r9, r10, lsl #4
ldr r10, [r4, +r10, lsl #2]
sub r7, r7, #4
; 374 : *--line_o1 = hicolor[((r4>>8)&240)+((r3>>12)&15)];
mov r9, lr, lsr #12
str r10, [r7]
mov r10, r1, lsr #8
and r10, r10, #0xF0 ; 0xF0 = 240
and r9, r9, #0xF ; 0xF = 15
add r10, r10, r9
ldr r10, [r4, +r10, lsl #2]
sub r7, r7, #4
; 375 : *--line_o1 = hicolor[((r2>>8)&240)+((r0>>12)&15)];
mov r9, r6, lsr #12
str r10, [r7]
mov r10, r2, lsr #8
and r10, r10, #0xF0 ; 0xF0 = 240
and r9, r9, #0xF ; 0xF = 15
; 376 : *--line_o1 = hicolor[((r4>>4)&240)+((r3>>8)&15)];
mov r1, r1, lsr #4
add r10, r10, r9
mov lr, lr, lsr #8
ldr r10, [r4, +r10, lsl #2]
and r1, r1, #0xF0 ; 0xF0 = 240
and lr, lr, #0xF ; 0xF = 15
sub r7, r7, #4
add r1, r1, lr
str r10, [r7]
ldr r1, [r4, +r1, lsl #2]
sub r7, r7, #4
; 377 : *--line_o1 = hicolor[((r2>>4)&240)+((r0>>8)&15)];
mov r2, r2, lsr #4
str r1, [r7]
mov r1, r6, lsr #8
and r2, r2, #0xF0 ; 0xF0 = 240
and r1, r1, #0xF ; 0xF = 15
add r2, r2, r1
ldr r2, [r4, +r2, lsl #2]
sub r7, r7, #4
sub r8, r8, #1
str r2, [r7]
cmp r8, #0
bhi |$L32010| ; 00000638
ldr r1, [sp, #0x20] ; 0x20 = 32
ldr r2, [sp, #0x14] ; 0x14 = 20
sub r1, r1, #0xA, 26 ; 0x280 = 640
str r1, [sp, #0x20] ; 0x20 = 32
add r2, r2, #2
ldr r1, [sp, #0x18] ; 0x18 = 24
str r2, [sp, #0x14] ; 0x14 = 20
ldr lr, [r1, #4]
ldr r1, [r1]
add r1, lr, r1
cmp r2, r1
blt |$L32006| ; 00000628[code][/code]