/[qemu]/qemu/op_string.h
ViewVC logotype

Diff of /qemu/op_string.h

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

revision 1.4 by bellard, Mon Jun 30 23:17:08 2003 UTC revision 1.5 by bellard, Sun Aug 10 21:47:00 2003 UTC
# Line 1  Line 1 
1    
 void OPPROTO glue(glue(op_movs, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, inc;  
     v = glue(ldu, SUFFIX)(SI_ADDR);  
     glue(st, SUFFIX)(DI_ADDR, v);  
     inc = (DF << SHIFT);  
     INC_SI();  
     INC_DI();  
 }  
   
 void OPPROTO glue(glue(op_rep_movs, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, inc;  
     inc = (DF << SHIFT);  
     while (CX != 0) {  
         v = glue(ldu, SUFFIX)(SI_ADDR);  
         glue(st, SUFFIX)(DI_ADDR, v);  
         INC_SI();  
         INC_DI();  
         DEC_CX();  
     }  
     FORCE_RET();  
 }  
   
 void OPPROTO glue(glue(op_stos, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int inc;  
     glue(st, SUFFIX)(DI_ADDR, EAX);  
     inc = (DF << SHIFT);  
     INC_DI();  
 }  
   
 void OPPROTO glue(glue(op_rep_stos, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int inc;  
     inc = (DF << SHIFT);  
     while (CX != 0) {  
         glue(st, SUFFIX)(DI_ADDR, EAX);  
         INC_DI();  
         DEC_CX();  
     }  
     FORCE_RET();  
 }  
   
 void OPPROTO glue(glue(op_lods, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, inc;  
     v = glue(ldu, SUFFIX)(SI_ADDR);  
 #if SHIFT == 0  
     EAX = (EAX & ~0xff) | v;  
 #elif SHIFT == 1  
     EAX = (EAX & ~0xffff) | v;  
 #else  
     EAX = v;  
 #endif  
     inc = (DF << SHIFT);  
     INC_SI();  
 }  
   
 /* don't know if it is used */  
 void OPPROTO glue(glue(op_rep_lods, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, inc;  
     inc = (DF << SHIFT);  
     while (CX != 0) {  
         v = glue(ldu, SUFFIX)(SI_ADDR);  
 #if SHIFT == 0  
         EAX = (EAX & ~0xff) | v;  
 #elif SHIFT == 1  
         EAX = (EAX & ~0xffff) | v;  
 #else  
         EAX = v;  
 #endif  
         INC_SI();  
         DEC_CX();  
     }  
     FORCE_RET();  
 }  
   
 void OPPROTO glue(glue(op_scas, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, inc;  
   
     v = glue(ldu, SUFFIX)(DI_ADDR);  
     inc = (DF << SHIFT);  
     INC_DI();  
     CC_SRC = v;  
     CC_DST = EAX - v;  
 }  
   
2  void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void)  void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void)
3  {  {
4      int v1, v2, inc;      int v1, v2, inc;
# Line 133  void OPPROTO glue(glue(op_repnz_scas, SU Line 43  void OPPROTO glue(glue(op_repnz_scas, SU
43      FORCE_RET();      FORCE_RET();
44  }  }
45    
 void OPPROTO glue(glue(op_cmps, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v1, v2, inc;  
     v1 = glue(ldu, SUFFIX)(SI_ADDR);  
     v2 = glue(ldu, SUFFIX)(DI_ADDR);  
     inc = (DF << SHIFT);  
     INC_SI();  
     INC_DI();  
     CC_SRC = v2;  
     CC_DST = v1 - v2;  
 }  
   
46  void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void)  void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void)
47  {  {
48      int v1, v2, inc;      int v1, v2, inc;
# Line 186  void OPPROTO glue(glue(op_repnz_cmps, SU Line 84  void OPPROTO glue(glue(op_repnz_cmps, SU
84      }      }
85      FORCE_RET();      FORCE_RET();
86  }  }
   
 void OPPROTO glue(glue(op_outs, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, dx, inc;  
     dx = EDX & 0xffff;  
     v = glue(ldu, SUFFIX)(SI_ADDR);  
     glue(cpu_x86_out, SUFFIX)(env, dx, v);  
     inc = (DF << SHIFT);  
     INC_SI();  
 }  
   
 void OPPROTO glue(glue(op_rep_outs, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, dx, inc;  
     inc = (DF << SHIFT);  
     dx = EDX & 0xffff;  
     while (CX != 0) {  
         v = glue(ldu, SUFFIX)(SI_ADDR);  
         glue(cpu_x86_out, SUFFIX)(env, dx, v);  
         INC_SI();  
         DEC_CX();  
     }  
     FORCE_RET();  
 }  
   
 void OPPROTO glue(glue(op_ins, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, dx, inc;  
     dx = EDX & 0xffff;  
     v = glue(cpu_x86_in, SUFFIX)(env, dx);  
     glue(st, SUFFIX)(DI_ADDR, v);  
     inc = (DF << SHIFT);  
     INC_DI();  
 }  
   
 void OPPROTO glue(glue(op_rep_ins, SUFFIX), STRING_SUFFIX)(void)  
 {  
     int v, dx, inc;  
     inc = (DF << SHIFT);  
     dx = EDX & 0xffff;  
     while (CX != 0) {  
         v = glue(cpu_x86_in, SUFFIX)(env, dx);  
         glue(st, SUFFIX)(DI_ADDR, v);  
         INC_DI();  
         DEC_CX();  
     }  
     FORCE_RET();  
 }  
87    
88  #undef STRING_SUFFIX  #undef STRING_SUFFIX
89  #undef SI_ADDR  #undef SI_ADDR

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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