/[gxemul]/trunk/src/cpus/cpu_x86_instr.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/cpus/cpu_x86_instr.c

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

revision 19 by dpavlin, Mon Oct 8 16:18:51 2007 UTC revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: cpu_x86_instr.c,v 1.1 2005/08/29 14:36:41 debug Exp $   *  $Id: cpu_x86_instr.c,v 1.2 2005/11/06 22:41:12 debug Exp $
29   *   *
30   *  x86/amd64 instructions.   *  x86/amd64 instructions.
31   *   *
32   *  Individual functions should keep track of cpu->n_translated_instrs. Since   *  Individual functions should keep track of cpu->n_translated_instrs.
  *  x86 uses variable length instructions, cpu->cd.x86.next_ic must also be  
  *  increased by the number of "instruction slots" that were executed. (I.e.  
  *  if an instruction occupying 5 bytes was executed, then next_ic should be  
  *  increased by 5.)  
  *  
33   *  (n_translated_instrs is automatically increased by 1 for each function   *  (n_translated_instrs is automatically increased by 1 for each function
34   *  call. If no instruction was executed, then it should be decreased. If, say,   *  call. If no instruction was executed, then it should be decreased. If, say,
35   *  4 instructions were combined into one function and executed, then it should   *  4 instructions were combined into one function and executed, then it should
# Line 47  Line 42 
42   */   */
43  X(nop)  X(nop)
44  {  {
         cpu->cd.x86.next_ic ++;  
45  }  }
46    
47    
# Line 68  X(end_of_page) Line 62  X(end_of_page)
62  }  }
63    
64    
 /*****************************************************************************/  
   
   
 /*  
  *  x86_combine_instructions():  
  *  
  *  Combine two or more instructions, if possible, into a single function call.  
  */  
 void COMBINE_INSTRUCTIONS(struct cpu *cpu, struct x86_instr_call *ic,  
         uint64_t addr)  
 {  
         int n_back;  
         n_back = addr & (X86_IC_ENTRIES_PER_PAGE-1);  
   
         if (n_back >= 1) {  
                 /*  TODO  */  
         }  
   
         /*  TODO: Combine forward as well  */  
 }  
   
   
65  /*****************************************************************************/  /*****************************************************************************/
66    
67    

Legend:
Removed from v.19  
changed lines
  Added in v.20

  ViewVC Help
Powered by ViewVC 1.1.26