for(i=0; i<h; i++) { #ifdef AS_BUGGY ldr3(5, 0, 8); ldl3(5, 7, 8); ldr3(5, 8, 9); ldl3(5, 15, 9); asm volatile ( "add $5, $5, $6 \n\t" ); pcpyld($9, $8, $8); sq($8, 0, $4); asm volatile ( "add $4, $4, $6 \n\t" ); #else
for(i=0; i<(h>>2); i++) {
static void put_pixels16_mmi(uint8_t *block, const uint8_t *pixels, int line_size, int h){    int i;    for(i=0; i<h; i++) {#ifdef AS_BUGGY        ldr3(5, 0, 8);        ldl3(5, 7, 8);        ldr3(5, 8, 9);        ldl3(5, 15, 9);        asm volatile ( "add $5, $5, $6 \n\t" );        pcpyld($9, $8, $8);        sq($8, 0, $4);        asm volatile ( "add $4, $4, $6 \n\t" );#else        asm volatile (        "ldr    $8, 0(%1)       \n\t"        "ldl    $8, 7(%1)       \n\t"        "ldr    $9, 8(%1)       \n\t"        "ldl    $9, 15(%1)      \n\t"        "add    %1, %1, %2      \n\t"        "pcpyld $8, $9, $8      \n\t"        "sq     $8, 0(%0)       \n\t"        "add    %0, %0, %2      \n\t" :: "r" (block), "r" (pixels), "r" (line_size) : "$8", "$9", "memory" );#endif    }}