hi everyone!
I have a question concerning how i386 execution is continued after a page 
fault has occured...

What I have understood so far:

In the executing TB the TLB is checked and if the address is not found

       __ld**** (e.g. __ldl_user)

is called. this calls 

       lb_fill

(if it really has to) which in turns asks

       cpu_x86_handle_mmu_fault

if it is really a page fault or just a TLB miss... if it is a fault however, 

       tb_find_pc

finds the TB and its last assembler instruction and uses

       raise_exception_err

to jump to the main-loop and handle the fault there --- I hope this is correct 
so far :-)

My question now: where does the execution continue after the fault has been 
handled? the saved assembler-instruction is the instruction AFTER

"call __ldl_user"

, what does not really make sense to jump back to...

Does "cpu_restore_state" find out what the last executing, translated op-code 
was, restores that and continues at the BEGINNING of that op-code TB??

If someone could help me out on this, it'd be really appreciated ;-)
Thanks!!!


Reply via email to