• Fixes regression reported agains Linux 2.6.18.
    Looks like XP and newer Linux kernels are less sensitive
    to length returned for control transfers.
    
    Signed-off-by: Max Krasnyansky <maxk@kernel.org>
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5070 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • When a TLB miss occurs while pre-decrement store instruction such as
    "mov.l Rm, @-Rn" is executed, re-execution of such instruction cause
    status confusion. Because pre Rn decrement is executed before TLB miss,
    re-execution decrements Rn again.
    In other words, in a translated instruction array, register status
    should not modified before memory access instruction.
    
    (Shin-ichiro KAWASAKI)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5069 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • Some bugs on SH4 MMU are fixed.
    
    - When a TLB entry is overwritten or invalidated, tlb_flush_page() should be
      invoked to invalidate old entry.
    - When a ASID is changed, tlb_flush() should be invoke to invalidate entries
      which have old ASID.
    - The check for shared bit in TLB entry causes multiple TLB hit exception.
      As SH3's MMU, shared bit is ignored.
    - ASID is used when MMUCR's SV bit or SR's MD bit is zero.
      No need to check both bits are zero.
    
    (Shin-ichiro KAWASAKI)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5068 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • SH4 MMU's memory mapped TLB feature is implemented.
    SH-Linux seems to write to memory mapped TLB to invalidate a TLB entry,
    but does not to read it. So only memory write feature is implemented.
    Work on memory read feature is left.
    
    (Shin-ichiro KAWASAKI)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5067 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • Two bugs about delay slot handlings are fixed.
    
    - After an exception occurred in delay slot, the branch instruction
      before delay slot should be executed again. To judge such re-execution
      is necessery or not, delay slot status is kept in SH4 CPU data structure.
    - When a branch instruction is placed at the end of memory segment,
      the delay slot is placed at the start of next memory segment.
      It means delay slot comes to the start of a translation block.
      In such occasion, DELAY_SLOT_CLAREME flag is used to transmit status
      between translation blocks. When an exception occurs on this kind of
      delay slot, DELAY_SLOT_CLEARME flag cause a status confusion in exception
      handling. DELAY_SLOT_CLEARME flag should be cleared on exceptions.
    
    And some items are added to CPU status dump.
    
    (Shin-ichiro KAWASAKI)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5066 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • This patch adds sleep instruction.
    
    (Shin-ichiro KAWASAKI)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5065 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • (Jindrich Makovicka)
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5064 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »
  • The direction bit in the control register should not be directly
    
    set using PPWCONTROL. The kernel gives the following debug message.
    
        parport0 (ppdev0): use data_reverse for this!
    
    More over setting the data pins to forward mode does not work,
    perhaps a bug in the Linux PP driver. The right way to do this is
    to use PPDATADIR to set the direction. The patch checks if the
    user is toggling the direction bit, and invokes PPDATADIR to
    do the job.
    
    Signed-off-by: Vijay Kumar B <vijaykumar@bravegnu.org>
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5063 c046a42c-6fe2-441c-8c8c-71466251a162
    aurel32 authored
     
    Browse Code »