/[gxemul]/trunk/src/cpus/generate_head.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_head.c

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

revision 23 by dpavlin, Mon Oct 8 16:19:37 2007 UTC revision 24 by dpavlin, Mon Oct 8 16:19:56 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-2006  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_head.c,v 1.12 2005/12/31 15:48:04 debug Exp $   *  $Id: generate_head.c,v 1.15 2006/04/19 18:55:57 debug Exp $
29   */   */
30    
31  #include <stdio.h>  #include <stdio.h>
# Line 33  Line 33 
33  #include <string.h>  #include <string.h>
34    
35    
36    /*  NOTE:  Static return buffer, so calling it multiple times in the
37            same printf statement with the same argument works :-)  but not
38            with different args. Hahaha. Really ugly.  */
39  char *uppercase(char *l)  char *uppercase(char *l)
40  {  {
41          static char staticbuf[1000];          static char staticbuf[1000];
# Line 65  int main(int argc, char *argv[]) Line 68  int main(int argc, char *argv[])
68          a = argv[1];          a = argv[1];
69          b = argv[2];          b = argv[2];
70    
71    
72          printf("\n/*  AUTOMATICALLY GENERATED! Do not edit.  */\n\n");          printf("\n/*  AUTOMATICALLY GENERATED! Do not edit.  */\n\n");
73    
74          printf("#define DYNTRANS_MAX_VPH_TLB_ENTRIES "          printf("#define DYNTRANS_MAX_VPH_TLB_ENTRIES "
75              "%s_MAX_VPH_TLB_ENTRIES\n", uppercase(a));              "%s_MAX_VPH_TLB_ENTRIES\n", uppercase(a));
76          printf("#define DYNTRANS_ARCH %s\n", a);          printf("#define DYNTRANS_ARCH %s\n", a);
77          printf("#define DYNTRANS_%s\n", uppercase(a));          printf("#define DYNTRANS_%s\n", uppercase(a));
78          printf("#ifdef DYNTRANS_32\n"  
79              "#define DYNTRANS_1LEVEL\n"          /*  For 64-bit platforms, arch_L2N, and arch_L3N must be defined.  */
80              "#endif\n");          printf("#ifndef DYNTRANS_32\n");
81            printf("#define DYNTRANS_L2N %s_L2N\n"
82                "#define DYNTRANS_L3N %s_L3N\n"
83                "#if !defined(%s_L2N) || !defined(%s_L3N)\n"
84                "#error arch_L2N, and arch_L3N must be defined for this arch!\n"
85                "#endif\n",
86                uppercase(a), uppercase(a), uppercase(a), uppercase(a));
87            printf("#define DYNTRANS_L2_64_TABLE %s_l2_64_table\n"
88                "#define DYNTRANS_L3_64_TABLE %s_l3_64_table\n", a, a);
89            printf("#endif\n");
90    
91            /*  Default pagesize is 4KB.  */
92          printf("#ifndef DYNTRANS_PAGESIZE\n"          printf("#ifndef DYNTRANS_PAGESIZE\n"
93              "#define DYNTRANS_PAGESIZE 4096\n"              "#define DYNTRANS_PAGESIZE 4096\n"
94              "#endif\n");              "#endif\n");
95    
96          printf("#define DYNTRANS_IC %s_instr_call\n", a);          printf("#define DYNTRANS_IC %s_instr_call\n", a);
97          printf("#define DYNTRANS_IC_ENTRIES_PER_PAGE "          printf("#define DYNTRANS_IC_ENTRIES_PER_PAGE "
98              "%s_IC_ENTRIES_PER_PAGE\n", uppercase(a));              "%s_IC_ENTRIES_PER_PAGE\n", uppercase(a));
# Line 103  int main(int argc, char *argv[]) Line 119  int main(int argc, char *argv[])
119              "extern int old_show_trace_tree;\n"              "extern int old_show_trace_tree;\n"
120              "extern int old_instruction_trace;\n"              "extern int old_instruction_trace;\n"
121              "extern int old_quiet_mode;\n"              "extern int old_quiet_mode;\n"
             "extern int show_opcode_statistics;\n"  
             "extern int dyntrans_backend_enable;\n"  
122              "extern int quiet_mode;\n");              "extern int quiet_mode;\n");
123    
124          printf("\n/* instr uses the same names as in "          printf("\n/* instr uses the same names as in "

Legend:
Removed from v.23  
changed lines
  Added in v.24

  ViewVC Help
Powered by ViewVC 1.1.26