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

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

revision 41 by dpavlin, Mon Oct 8 16:21:53 2007 UTC revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: cpu_alpha.c,v 1.25 2007/03/26 02:01:35 debug Exp $   *  $Id: cpu_alpha.c,v 1.27 2007/06/07 15:36:24 debug Exp $
29   *   *
30   *  Alpha CPU emulation.   *  Alpha CPU emulation.
31   *   *
# Line 41  Line 41 
41  #include <ctype.h>  #include <ctype.h>
42    
43  #include "cpu.h"  #include "cpu.h"
44    #include "interrupt.h"
45  #include "machine.h"  #include "machine.h"
46  #include "memory.h"  #include "memory.h"
47  #include "misc.h"  #include "misc.h"
48  #include "settings.h"  #include "settings.h"
49  #include "symbol.h"  #include "symbol.h"
50    #include "timer.h"
51    
52  #define DYNTRANS_8K  #define DYNTRANS_8K
53  #define DYNTRANS_PAGESIZE       8192  #define DYNTRANS_PAGESIZE       8192
54  #include "tmp_alpha_head.c"  #include "tmp_alpha_head.c"
55    
56    
57    extern int native_code_translation_enabled;
58    
59  /*  Alpha symbolic register names:  */  /*  Alpha symbolic register names:  */
60  static char *alpha_regname[N_ALPHA_REGS] = ALPHA_REG_NAMES;  static char *alpha_regname[N_ALPHA_REGS] = ALPHA_REG_NAMES;
61    
62    void alpha_irq_interrupt_assert(struct interrupt *interrupt);
63    void alpha_irq_interrupt_deassert(struct interrupt *interrupt);
64    
65    
66  /*  /*
67   *  alpha_cpu_new():   *  alpha_cpu_new():
# Line 113  int alpha_cpu_new(struct cpu *cpu, struc Line 120  int alpha_cpu_new(struct cpu *cpu, struc
120                  CPU_SETTINGS_ADD_REGISTER64(alpha_regname[i],                  CPU_SETTINGS_ADD_REGISTER64(alpha_regname[i],
121                      cpu->cd.alpha.r[i]);                      cpu->cd.alpha.r[i]);
122    
123            /*  Register the CPU interrupt pin:  */
124            {
125                    struct interrupt template;
126    
127                    memset(&template, 0, sizeof(template));
128                    template.line = 0;
129                    template.name = cpu->path;
130                    template.extra = cpu;
131                    template.interrupt_assert = alpha_irq_interrupt_assert;
132                    template.interrupt_deassert = alpha_irq_interrupt_deassert;
133                    interrupt_handler_register(&template);
134            }
135    
136            if (native_code_translation_enabled)
137                    cpu->sampling_timer = timer_add(CPU_SAMPLE_TIMER_HZ,
138                        alpha_timer_sample_tick, cpu);
139    
140          return 1;          return 1;
141  }  }
142    
# Line 195  void alpha_cpu_tlbdump(struct machine *m Line 219  void alpha_cpu_tlbdump(struct machine *m
219  }  }
220    
221    
222    /*
223     *  alpha_irq_interrupt_assert():
224     *  alpha_irq_interrupt_deassert():
225     */
226    void alpha_irq_interrupt_assert(struct interrupt *interrupt)
227    {
228            struct cpu *cpu = (struct cpu *) interrupt->extra;
229            cpu->cd.alpha.irq_asserted = 1;
230    }
231    void alpha_irq_interrupt_deassert(struct interrupt *interrupt)
232    {
233            struct cpu *cpu = (struct cpu *) interrupt->extra;
234            cpu->cd.alpha.irq_asserted = 0;
235    }
236    
237    
238  /*  /*
239   *  alpha_print_imm16_disp():   *  alpha_print_imm16_disp():
240   *   *

Legend:
Removed from v.41  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26