# Mutants for video/c_mv16tbt.h, the pixel writers shared by the 8x8 and
# 16x16 *bt drawers. Checked by test/difftest_t8bt.c; test/difftest_t16bt.c
# exercises the same code with winbyk set.
# Format: name<TAB>old<TAB>new   (\n for a newline)
px win test	    if (win != 0 && win[w] != 0) {	    if (win != 0 && win[w] == 0) {
px win always	    if (win != 0 && win[w] != 0) {	    if (win[w] != 0) {
px win index	    if (win != 0 && win[w] != 0) {	    if (win != 0 && win[n] != 0) {
px win index k	    if (win != 0 && win[w] != 0) {	    if (win != 0 && win[k] != 0) {
px zero test	    r->ax = eax;\n    if (eax == 0) {	    r->ax = eax;\n    if ((eax & 0x0Fu) == 0) {
px ax on skip	    r->ax = eax;\n    if (eax == 0) {	    if (eax == 0) {
px pal wrap	    eax = (u1)(eax + dh);	    eax = eax + dh;
px pal add	    eax = (u1)(eax + dh);	    eax = (u1)(eax - dh);
px win store	        *(u2*)(esi + n * 2) = (u2)col;\n        *(u2*)(ebp + n * 2) = (u2)col;	        *(u2*)(esi + n * 2) = (u2)col;\n        *(u2*)(ebp + n * 2) = (u2)(col >> 16);
px win transp	        *(u2*)(esi + n * 2) = (u2)col;\n        *(u2*)(ebp + n * 2) = (u2)col;	        *(u2*)(esi + n * 2) = (u2)col;
px win vid	        *(u2*)(esi + n * 2) = (u2)col;\n        *(u2*)(ebp + n * 2) = (u2)col;	        *(u2*)(ebp + n * 2) = (u2)col;
px win index n	        *(u2*)(esi + n * 2) = (u2)col;\n        *(u2*)(ebp + n * 2) = (u2)col;	        *(u2*)(esi + k * 2) = (u2)col;\n        *(u2*)(ebp + k * 2) = (u2)col;
px win ax clear	        r->ax = 0;\n    } else {	    } else {
px plain cx	        r->cx = pal16b[eax];\n        *(u2*)(esi + n * 2) = (u2)r->cx;	        u4 const c = pal16b[eax];\n        *(u2*)(esi + n * 2) = (u2)c;
px plain transp	        *(u2*)(esi + n * 2) = (u2)r->cx;\n        *(u2*)(ebp + n * 2) = (u2)r->cx;	        *(u2*)(esi + n * 2) = (u2)r->cx;
px plain index	        *(u2*)(esi + n * 2) = (u2)r->cx;\n        *(u2*)(ebp + n * 2) = (u2)r->cx;	        *(u2*)(esi + k * 2) = (u2)r->cx;\n        *(u2*)(ebp + k * 2) = (u2)r->cx;
px tile index	    u4 eax = tile[k];	    u4 eax = tile[n];
row group test	        if (*(u4 const*)(tile + (k & 4u)) == 0) {	        if (*(u4 const*)(tile + (k & 4u)) != 0) {
row group half	        if (*(u4 const*)(tile + (k & 4u)) == 0) {	        if (*(u4 const*)(tile + (4u - (k & 4u))) == 0) {
row group none	        if (*(u4 const*)(tile + (k & 4u)) == 0) {	        if (0) {
row group width	        if (*(u4 const*)(tile + (k & 4u)) == 0) {	        if (*(u2 const*)(tile + (k & 4u)) == 0) {
row group order	        u4 const k = flip ? 7 - g : g;	        u4 const k = g;
row flip	            u4 const j = flip ? 7 - n : n;	            u4 const j = n;
row flip screen	            bt_px(r, tile, win, dh, esi, ebp, j, n, winbyk ? j : n);	            bt_px(r, tile, win, dh, esi, ebp, n, j, winbyk ? j : n);
row winbyk	            bt_px(r, tile, win, dh, esi, ebp, j, n, winbyk ? j : n);	            bt_px(r, tile, win, dh, esi, ebp, j, n, n);
row winbyk always	            bt_px(r, tile, win, dh, esi, ebp, j, n, winbyk ? j : n);	            bt_px(r, tile, win, dh, esi, ebp, j, n, j);
