--- trunk/src/cpus/generate_tail.c 2007/10/08 16:18:51 14 +++ trunk/src/cpus/generate_tail.c 2007/10/08 16:20:10 26 @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: generate_tail.c,v 1.5 2005/09/18 19:54:14 debug Exp $ + * $Id: generate_tail.c,v 1.11 2006/06/24 21:47:23 debug Exp $ */ #include @@ -35,7 +35,7 @@ char *uppercase(char *l) { static char staticbuf[1000]; - int i = 0; + size_t i = 0; while (*l && i < sizeof(staticbuf)) { char u = *l++; @@ -75,6 +75,11 @@ printf("#include \"cpu_dyntrans.c\"\n"); printf("#undef DYNTRANS_FUNCTION_TRACE\n\n"); + printf("#define DYNTRANS_INIT_TABLES " + "%s_cpu_init_tables\n", a); + printf("#include \"cpu_dyntrans.c\"\n"); + printf("#undef DYNTRANS_INIT_TABLES\n\n"); + printf("#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE " "%s_tc_allocate_default_page\n", a); printf("#include \"cpu_dyntrans.c\"\n"); @@ -84,10 +89,10 @@ printf("#include \"cpu_dyntrans.c\"\n"); printf("#undef DYNTRANS_INVAL_ENTRY\n\n"); - printf("#define DYNTRANS_INVALIDATE_TC_PADDR " - "%s_invalidate_translation_caches_paddr\n", a); + printf("#define DYNTRANS_INVALIDATE_TC " + "%s_invalidate_translation_caches\n", a); printf("#include \"cpu_dyntrans.c\"\n"); - printf("#undef DYNTRANS_INVALIDATE_TC_PADDR\n\n"); + printf("#undef DYNTRANS_INVALIDATE_TC\n\n"); printf("#define DYNTRANS_INVALIDATE_TC_CODE " "%s_invalidate_code_translation\n", a); @@ -123,6 +128,8 @@ printf("#define MODE_uint_t uint32_t\n"); printf("#define MODE_int_t int32_t\n"); printf("#endif\n"); + printf("#define COMBINE(n) %s_combine_ ## n\n", a); + printf("#include \"quick_pc_to_pointers.h\"\n"); printf("#include \"cpu_%s_instr.c\"\n\n", a); @@ -149,10 +156,10 @@ "%s32_invalidate_tlb_entry\n", a); printf("#include \"cpu_dyntrans.c\"\n"); printf("#undef DYNTRANS_INVAL_ENTRY\n\n"); - printf("#define DYNTRANS_INVALIDATE_TC_PADDR " - "%s32_invalidate_translation_caches_paddr\n", a); + printf("#define DYNTRANS_INVALIDATE_TC " + "%s32_invalidate_translation_caches\n", a); printf("#include \"cpu_dyntrans.c\"\n"); - printf("#undef DYNTRANS_INVALIDATE_TC_PADDR\n\n"); + printf("#undef DYNTRANS_INVALIDATE_TC\n\n"); printf("#define DYNTRANS_INVALIDATE_TC_CODE " "%s32_invalidate_code_translation\n", a); printf("#include \"cpu_dyntrans.c\"\n"); @@ -169,6 +176,9 @@ printf("#include \"cpu_dyntrans.c\"\n"); printf("#undef DYNTRANS_PC_TO_POINTERS_FUNC\n\n"); printf("#undef DYNTRANS_PC_TO_POINTERS_GENERIC\n\n"); + printf("#undef COMBINE\n"); + printf("#define COMBINE(n) %s32_combine_ ## n\n", a); + printf("#include \"quick_pc_to_pointers.h\"\n"); printf("#include \"cpu_%s_instr.c\"\n", a); printf("\n#undef DYNTRANS_PC_TO_POINTERS\n" @@ -182,14 +192,6 @@ printf("#include \"cpu_dyntrans.c\"\n"); printf("#undef DYNTRANS_CPU_RUN_INSTR\n\n"); - printf("#define CPU_RUN %s_cpu_run\n", a); - printf("#define CPU_RINSTR %s_cpu_run_instr\n", a); - printf("#define CPU_RUN_%s\n", uppercase(a)); - printf("#include \"cpu_run.c\"\n"); - printf("#undef CPU_RINSTR\n"); - printf("#undef CPU_RUN_%s\n", uppercase(a)); - printf("#undef CPU_RUN\n\n"); - printf("CPU_FAMILY_INIT(%s,\"%s\")\n\n", a, b); return 0;