X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=drivers%2Fgp2x%2Fasmutils.s;fp=drivers%2Fgp2x%2Fasmutils.s;h=a91cfaf2b817d7a4308d715547a48ad4ee21439a;hp=62e06615737053657f3e6ce3232f274c2076d34f;hb=21afaa365c97896da6ccbdd6540e20f2d2bb4990;hpb=c4980f9edd806014286d57aee1cbe5e73b803e46 diff --git a/drivers/gp2x/asmutils.s b/drivers/gp2x/asmutils.s index 62e0661..a91cfaf 100644 --- a/drivers/gp2x/asmutils.s +++ b/drivers/gp2x/asmutils.s @@ -86,7 +86,36 @@ spend_cycles: bx lr -.global soft_scale @ void *dst, unsigned short *pal, int offs, int lines +.global memset32 @ int *dest, int c, int count + +memset32: + stmfd sp!, {lr} + + mov r3, r1 + subs r2, r2, #4 + bmi mst32_fin + + mov r12,r1 + mov lr, r1 + +mst32_loop: + subs r2, r2, #4 + stmia r0!, {r1,r3,r12,lr} + bpl mst32_loop + +mst32_fin: + tst r2, #1 + strne r1, [r0], #4 + + tst r2, #2 + stmneia r0!, {r1,r3} + + ldmfd sp!, {lr} + bx lr + + + +.global soft_scale @ void *dst, unsigned short *pal, int line_offs, int lines soft_scale: stmfd sp!,{r4-r11,lr}