/[cebix]/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp
ViewVC logotype

Diff of /SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp

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

revision 1.62 by gbeauche, Thu Jun 30 07:34:17 2005 UTC revision 1.63 by gbeauche, Thu Jun 30 09:09:59 2005 UTC
# Line 935  void HandleInterrupt(powerpc_registers * Line 935  void HandleInterrupt(powerpc_registers *
935          if (int32(ReadMacInt32(XLM_IRQ_NEST)) > 0)          if (int32(ReadMacInt32(XLM_IRQ_NEST)) > 0)
936                  return;                  return;
937    
938          // Do nothing if there is no pending interrupt          // Update interrupt count
         if (InterruptFlags == 0)  
                 return;  
   
         // Current interrupt nest level  
         static int interrupt_depth = 0;  
         ++interrupt_depth;  
939  #if EMUL_TIME_STATS  #if EMUL_TIME_STATS
940          interrupt_count++;          interrupt_count++;
941  #endif  #endif
# Line 957  void HandleInterrupt(powerpc_registers * Line 951  void HandleInterrupt(powerpc_registers *
951  #if INTERRUPTS_IN_NATIVE_MODE  #if INTERRUPTS_IN_NATIVE_MODE
952          case MODE_NATIVE:          case MODE_NATIVE:
953                  // 68k emulator inactive, in nanokernel?                  // 68k emulator inactive, in nanokernel?
954                  if (r->gpr[1] != KernelDataAddr && interrupt_depth == 1) {                  if (r->gpr[1] != KernelDataAddr) {
955    
956                          // Prepare for 68k interrupt level 1                          // Prepare for 68k interrupt level 1
957                          WriteMacInt16(tswap32(kernel_data->v[0x67c >> 2]), 1);                          WriteMacInt16(tswap32(kernel_data->v[0x67c >> 2]), 1);
# Line 1015  void HandleInterrupt(powerpc_registers * Line 1009  void HandleInterrupt(powerpc_registers *
1009                  break;                  break;
1010  #endif  #endif
1011          }          }
   
         // We are done with this interrupt  
         --interrupt_depth;  
1012  }  }
1013    
1014  static void get_resource(void);  static void get_resource(void);

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.63

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.15