/[qemu]/qemu/helper-i386.c
ViewVC logotype

Diff of /qemu/helper-i386.c

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

revision 1.11 by bellard, Tue Jul 29 20:53:01 2003 UTC revision 1.12 by bellard, Sun Aug 10 21:47:01 2003 UTC
# Line 781  void helper_lcall_real_T0_T1(int shift, Line 781  void helper_lcall_real_T0_T1(int shift,
781      int new_cs, new_eip;      int new_cs, new_eip;
782      uint32_t esp, esp_mask;      uint32_t esp, esp_mask;
783      uint8_t *ssp;      uint8_t *ssp;
784        
785      new_cs = T0;      new_cs = T0;
786      new_eip = T1;      new_eip = T1;
787      esp = env->regs[R_ESP];      esp = env->regs[R_ESP];
# Line 1741  void helper_frstor(uint8_t *ptr, int dat Line 1741  void helper_frstor(uint8_t *ptr, int dat
1741      }      }
1742  }  }
1743    
1744    #define SHIFT 0
1745    #include "softmmu_template.h"
1746    
1747    #define SHIFT 1
1748    #include "softmmu_template.h"
1749    
1750    #define SHIFT 2
1751    #include "softmmu_template.h"
1752    
1753    #define SHIFT 3
1754    #include "softmmu_template.h"
1755    
1756    /* try to fill the TLB and return an exception if error */
1757    void tlb_fill(unsigned long addr, int is_write, void *retaddr)
1758    {
1759        TranslationBlock *tb;
1760        int ret;
1761        unsigned long pc;
1762        ret = cpu_x86_handle_mmu_fault(env, addr, is_write);
1763        if (ret) {
1764            /* now we have a real cpu fault */
1765            pc = (unsigned long)retaddr;
1766            tb = tb_find_pc(pc);
1767            if (tb) {
1768                /* the PC is inside the translated code. It means that we have
1769                   a virtual CPU fault */
1770                cpu_restore_state(tb, env, pc);
1771            }
1772            raise_exception_err(EXCP0E_PAGE, env->error_code);
1773        }
1774    }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26