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

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

revision 31 by dpavlin, Mon Oct 8 16:20:40 2007 UTC revision 32 by dpavlin, Mon Oct 8 16:20:58 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: cpu_transputer.c,v 1.4 2006/07/23 14:37:34 debug Exp $   *  $Id: cpu_transputer.c,v 1.5 2006/09/19 10:50:08 debug Exp $
29   *   *
30   *  INMOS transputer CPU emulation.   *  INMOS transputer CPU emulation.
31   */   */
# Line 39  Line 39 
39  #include "machine.h"  #include "machine.h"
40  #include "memory.h"  #include "memory.h"
41  #include "misc.h"  #include "misc.h"
42    #include "settings.h"
43  #include "symbol.h"  #include "symbol.h"
44    
45  #define DYNTRANS_32  #define DYNTRANS_32
# Line 99  int transputer_cpu_new(struct cpu *cpu, Line 100  int transputer_cpu_new(struct cpu *cpu,
100    
101          cpu->cd.transputer.wptr = machine->physical_ram_in_mb * 1048576 - 2048;          cpu->cd.transputer.wptr = machine->physical_ram_in_mb * 1048576 - 2048;
102    
103            CPU_SETTINGS_ADD_REGISTER64("ip", cpu->pc);
104            CPU_SETTINGS_ADD_REGISTER32("a", cpu->cd.transputer.a);
105            CPU_SETTINGS_ADD_REGISTER32("b", cpu->cd.transputer.b);
106            CPU_SETTINGS_ADD_REGISTER32("c", cpu->cd.transputer.c);
107            CPU_SETTINGS_ADD_REGISTER32("oreg", cpu->cd.transputer.oreg);
108            CPU_SETTINGS_ADD_REGISTER32("wptr", cpu->cd.transputer.wptr);
109    
110          return 1;          return 1;
111  }  }
112    
# Line 164  void transputer_cpu_register_dump(struct Line 172  void transputer_cpu_register_dump(struct
172  }  }
173    
174    
 /*  
  *  transputer_cpu_register_match():  
  */  
 void transputer_cpu_register_match(struct machine *m, char *name,  
         int writeflag, uint64_t *valuep, int *match_register)  
 {  
         int cpunr = 0;  
   
         /*  CPU number:  */  
         /*  TODO  */  
   
         /*  Register name:  */  
         if (strcasecmp(name, "pc") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->pc = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->pc;  
                 *match_register = 1;  
         }  
   
         if (strcasecmp(name, "a") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->cd.transputer.a = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->cd.transputer.a;  
                 *match_register = 1;  
         }  
   
         if (strcasecmp(name, "b") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->cd.transputer.b = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->cd.transputer.b;  
                 *match_register = 1;  
         }  
   
         if (strcasecmp(name, "c") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->cd.transputer.c = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->cd.transputer.c;  
                 *match_register = 1;  
         }  
   
         if (strcasecmp(name, "wptr") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->cd.transputer.wptr = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->cd.transputer.wptr;  
                 *match_register = 1;  
         }  
   
         if (strcasecmp(name, "oreg") == 0) {  
                 if (writeflag) {  
                         m->cpus[cpunr]->cd.transputer.oreg = *valuep;  
                 } else  
                         *valuep = m->cpus[cpunr]->cd.transputer.oreg;  
                 *match_register = 1;  
         }  
   
         /*  TODO: Front and back pointers, etc.  */  
 }  
   
   
175  /*  /*
176   *  transputer_cpu_tlbdump():   *  transputer_cpu_tlbdump():
177   *   *

Legend:
Removed from v.31  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.26