ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp
(Generate patch)

Comparing SheepShaver/src/kpx_cpu/sheepshaver_glue.cpp (file contents):
Revision 1.62 by gbeauche, 2005-06-30T07:34:17Z vs.
Revision 1.63 by gbeauche, 2005-06-30T09:09:59Z

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines