/[gxemul]/trunk/src/cpus/generate_tail.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/cpus/generate_tail.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 18 by dpavlin, Mon Oct 8 16:19:11 2007 UTC revision 34 by dpavlin, Mon Oct 8 16:21:17 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-2007  Anders Gavare.  All rights reserved.
3   *   *
4   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
5   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: generate_tail.c,v 1.6 2005/10/22 17:24:21 debug Exp $   *  $Id: generate_tail.c,v 1.15 2007/02/02 17:44:04 debug Exp $
29   */   */
30    
31  #include <stdio.h>  #include <stdio.h>
# Line 35  Line 35 
35  char *uppercase(char *l)  char *uppercase(char *l)
36  {  {
37          static char staticbuf[1000];          static char staticbuf[1000];
38          int i = 0;          size_t i = 0;
39    
40          while (*l && i < sizeof(staticbuf)) {          while (*l && i < sizeof(staticbuf)) {
41                  char u = *l++;                  char u = *l++;
# Line 66  int main(int argc, char *argv[]) Line 66  int main(int argc, char *argv[])
66    
67          printf("\n/*\n *  AUTOMATICALLY GENERATED! Do not edit.\n */\n\n");          printf("\n/*\n *  AUTOMATICALLY GENERATED! Do not edit.\n */\n\n");
68    
69            printf("extern size_t dyntrans_cache_size;\n");
70            printf("extern int native_code_translation_enabled;\n");
71            printf("#include \"native.h\"\n");
72    
73          printf("#ifdef DYNTRANS_32\n");          printf("#ifdef DYNTRANS_32\n");
74          printf("#define MODE32\n");          printf("#define MODE32\n");
75          printf("#endif\n");          printf("#endif\n");
# Line 75  int main(int argc, char *argv[]) Line 79  int main(int argc, char *argv[])
79          printf("#include \"cpu_dyntrans.c\"\n");          printf("#include \"cpu_dyntrans.c\"\n");
80          printf("#undef DYNTRANS_FUNCTION_TRACE\n\n");          printf("#undef DYNTRANS_FUNCTION_TRACE\n\n");
81    
82            printf("#define DYNTRANS_INIT_TABLES "
83                "%s_cpu_init_tables\n", a);
84            printf("#include \"cpu_dyntrans.c\"\n");
85            printf("#undef DYNTRANS_INIT_TABLES\n\n");
86    
87          printf("#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE "          printf("#define DYNTRANS_TC_ALLOCATE_DEFAULT_PAGE "
88              "%s_tc_allocate_default_page\n", a);              "%s_tc_allocate_default_page\n", a);
89          printf("#include \"cpu_dyntrans.c\"\n");          printf("#include \"cpu_dyntrans.c\"\n");
# Line 123  int main(int argc, char *argv[]) Line 132  int main(int argc, char *argv[])
132          printf("#define MODE_uint_t uint32_t\n");          printf("#define MODE_uint_t uint32_t\n");
133          printf("#define MODE_int_t int32_t\n");          printf("#define MODE_int_t int32_t\n");
134          printf("#endif\n");          printf("#endif\n");
135            printf("#define COMBINE(n) %s_combine_ ## n\n", a);
136            printf("#include \"quick_pc_to_pointers.h\"\n");
137          printf("#include \"cpu_%s_instr.c\"\n\n", a);          printf("#include \"cpu_%s_instr.c\"\n\n", a);
138    
139            printf("#define DYNTRANS_RUN_INSTR %s_run_instr\n", a);
140            printf("#include \"cpu_dyntrans.c\"\n");
141            printf("#undef DYNTRANS_RUN_INSTR\n\n");
142    
143    
144          printf("#ifdef DYNTRANS_DUALMODE_32\n");          printf("#ifdef DYNTRANS_DUALMODE_32\n");
145          printf("#undef COMBINE_INSTRUCTIONS\n");          printf("#undef COMBINE_INSTRUCTIONS\n");
# Line 169  int main(int argc, char *argv[]) Line 184  int main(int argc, char *argv[])
184          printf("#include \"cpu_dyntrans.c\"\n");          printf("#include \"cpu_dyntrans.c\"\n");
185          printf("#undef DYNTRANS_PC_TO_POINTERS_FUNC\n\n");          printf("#undef DYNTRANS_PC_TO_POINTERS_FUNC\n\n");
186          printf("#undef DYNTRANS_PC_TO_POINTERS_GENERIC\n\n");          printf("#undef DYNTRANS_PC_TO_POINTERS_GENERIC\n\n");
187            printf("#undef COMBINE\n");
188            printf("#define COMBINE(n) %s32_combine_ ## n\n", a);
189            printf("#include \"quick_pc_to_pointers.h\"\n");
190          printf("#include \"cpu_%s_instr.c\"\n", a);          printf("#include \"cpu_%s_instr.c\"\n", a);
191    
192          printf("\n#undef DYNTRANS_PC_TO_POINTERS\n"          printf("\n#undef DYNTRANS_PC_TO_POINTERS\n"
193              "#define DYNTRANS_PC_TO_POINTERS %s_pc_to_pointers\n"              "#define DYNTRANS_PC_TO_POINTERS %s_pc_to_pointers\n"
194              "#define DYNTRANS_PC_TO_POINTERS32 %s32_pc_to_pointers\n\n", a, a);              "#define DYNTRANS_PC_TO_POINTERS32 %s32_pc_to_pointers\n\n", a, a);
195    
196          printf("#endif /*  DYNTRANS_DUALMODE_32  */\n\n\n");          printf("#define DYNTRANS_RUN_INSTR %s32_run_instr\n", a);
   
   
         printf("#define DYNTRANS_CPU_RUN_INSTR %s_cpu_run_instr\n", a);  
197          printf("#include \"cpu_dyntrans.c\"\n");          printf("#include \"cpu_dyntrans.c\"\n");
198          printf("#undef DYNTRANS_CPU_RUN_INSTR\n\n");          printf("#undef DYNTRANS_RUN_INSTR\n\n");
199    
200            printf("#endif /*  DYNTRANS_DUALMODE_32  */\n\n\n");
201    
         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");  
202    
203          printf("CPU_FAMILY_INIT(%s,\"%s\")\n\n", a, b);          printf("CPU_FAMILY_INIT(%s,\"%s\")\n\n", a, b);
204    

Legend:
Removed from v.18  
changed lines
  Added in v.34

  ViewVC Help
Powered by ViewVC 1.1.26