--- uae/src/genp2c.c 2018/04/24 16:41:59 1.1.1.2 +++ uae/src/genp2c.c 2018/04/24 17:14:08 1.1.1.5 @@ -12,7 +12,9 @@ #include "sysconfig.h" #include "sysdeps.h" -#include "custom.h" +/* We can't include custom.h here. */ +#define MAX_WORDS_PER_LINE 50 + static char *gen_ind (char *a, int b) { @@ -80,7 +82,7 @@ static void orl (char *src, char *dst) { static void imull (unsigned long val, char *dst) { printf ("\timull $0x%08lx,%s\n", val, dst); } static void decl (char *dst) { printf ("\tdecl %s\n", dst); } static void incl (char *dst) { printf ("\tincl %s\n", dst); } -static void bswapl (char *dst) { printf ("\tbswapl %s\n", dst); } +static void bswapl (char *dst) { printf ("\tbswap %s\n", dst); } static void shrl (int count, char *dst) { printf ("\tshrl $%d,%s\n", count, dst); } static void shll (int count, char *dst) { printf ("\tshll $%d,%s\n", count, dst); } static void pushl (char *src) { printf ("\tpushl %s\n", src); } @@ -358,7 +360,7 @@ static void gen_x86_set_hires_h (int pl, } break; } - + if (i < pl) { orl (esi, ecx); orl (ebp, ebx); @@ -386,7 +388,7 @@ static void gen_x86_set_hires_h (int pl, printf ("\n\n"); } -/* Squeeze: every second bit does not generate a pixel +/* Squeeze: every second bit does not generate a pixel Not optimized, this mode isn't useful. */ static void gen_x86_set_hires_l (int pl, int mode) { @@ -403,7 +405,7 @@ static void gen_x86_set_hires_l (int pl, pushl (esi); pushl (edi); pushl (ebx); - + movl (ind (esp, 20), ebp); movl (ind (esp, 24), esi); movl (imm (0), edi); @@ -462,7 +464,7 @@ static void gen_x86_set_lores_h (int pl, pushl (esi); pushl (edi); pushl (ebx); - + movl (ind (esp, 20), ebp); movl (ind (esp, 24), esi); movl (imm (0), edi); @@ -481,7 +483,7 @@ static void gen_x86_set_lores_h (int pl, char *data1 = (i == 0 && mode != 2 ? ecx : edx); char *data2 = (i == 0 && mode != 2 ? ebx : eax); char *indb0; - + indb0 = gen_indx (esi, realpl*MAX_WORDS_PER_LINE*2, edi, 1); movzbl (indb0, data2); free (indb0); @@ -540,10 +542,10 @@ static void gen_c_set_hires_h (int pl, i for (i = 0; i <= pl; i++) { int realpl = i * plmul + ploff; char *asgn = (i == 0 && mode != 2 ? "=" : "|="); - + printf ("\t\t{\n"); printf ("\t\t\tunsigned int data = *(ptr + i + %d);\n", MAX_WORDS_PER_LINE*2*realpl); - + printf ("\t\t\tv1 %s hirestab_h[data][0] << %d;\n", asgn, realpl); printf ("\t\t\tv2 %s hirestab_h[data][1] << %d;\n", asgn, realpl); printf ("\t\t}\n"); @@ -554,7 +556,7 @@ static void gen_c_set_hires_h (int pl, i printf ("}\n\n"); } -/* Squeeze: every second bit does not generate a pixel +/* Squeeze: every second bit does not generate a pixel Not optimized, this mode isn't useful. */ static void gen_c_set_hires_l (int pl, int mode, int header) { @@ -579,7 +581,7 @@ static void gen_c_set_hires_l (int pl, i for (i = 0; i <= pl; i++) { int realpl = i * plmul + ploff; char *asgn = (i == 0 && mode != 2 ? "=" : "|="); - + printf ("\t\t{\n"); printf ("\t\t\tunsigned int data = *(ptr + i + %d);\n", MAX_WORDS_PER_LINE*2*realpl);