/[qemu]/qemu/target-i386/op.c
ViewVC logotype

Diff of /qemu/target-i386/op.c

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

revision 1.6 by bellard, Sat Nov 22 23:57:34 2003 UTC revision 1.7 by bellard, Sun Nov 23 23:09:40 2003 UTC
# Line 1138  void OPPROTO op_set_cc_op(void) Line 1138  void OPPROTO op_set_cc_op(void)
1138      CC_OP = PARAM1;      CC_OP = PARAM1;
1139  }  }
1140    
1141  #define FL_UPDATE_MASK16 (FL_UPDATE_MASK32 & 0xffff)  /* XXX: clear VIF/VIP in all ops ? */
1142    
1143  void OPPROTO op_movl_eflags_T0(void)  void OPPROTO op_movl_eflags_T0(void)
1144  {  {
1145      int eflags;      load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK));
     eflags = T0;  
     CC_SRC = eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);  
     DF = 1 - (2 * ((eflags >> 10) & 1));  
     /* we also update some system flags as in user mode */  
     env->eflags = (env->eflags & ~FL_UPDATE_MASK32) |  
         (eflags & FL_UPDATE_MASK32);  
1146  }  }
1147    
1148  void OPPROTO op_movw_eflags_T0(void)  void OPPROTO op_movw_eflags_T0(void)
1149  {  {
1150      int eflags;      load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK) & 0xffff);
1151      eflags = T0;  }
1152      CC_SRC = eflags & (CC_O | CC_S | CC_Z | CC_A | CC_P | CC_C);  
1153      DF = 1 - (2 * ((eflags >> 10) & 1));  void OPPROTO op_movl_eflags_T0_io(void)
1154      /* we also update some system flags as in user mode */  {
1155      env->eflags = (env->eflags & ~FL_UPDATE_MASK16) |      load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK | IF_MASK));
1156          (eflags & FL_UPDATE_MASK16);  }
1157    
1158    void OPPROTO op_movw_eflags_T0_io(void)
1159    {
1160        load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK | IF_MASK) & 0xffff);
1161  }  }
1162    
1163  void OPPROTO op_movl_eflags_T0_cpl0(void)  void OPPROTO op_movl_eflags_T0_cpl0(void)
1164  {  {
1165      load_eflags(T0, FL_UPDATE_CPL0_MASK);      load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK | IF_MASK | IOPL_MASK));
1166  }  }
1167    
1168  void OPPROTO op_movw_eflags_T0_cpl0(void)  void OPPROTO op_movw_eflags_T0_cpl0(void)
1169  {  {
1170      load_eflags(T0, FL_UPDATE_CPL0_MASK & 0xffff);      load_eflags(T0, (TF_MASK | AC_MASK | ID_MASK | IF_MASK | IOPL_MASK) & 0xffff);
1171  }  }
1172    
1173  #if 0  #if 0

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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