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

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

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

revision 1.32 by bellard, Tue Oct 12 22:01:28 2004 UTC revision 1.33 by bellard, Sun Nov 14 15:39:16 2004 UTC
# Line 1068  void helper_cpuid(void) Line 1068  void helper_cpuid(void)
1068      }      }
1069  }  }
1070    
1071    void helper_enter_level(int level, int data32)
1072    {
1073        uint8_t *ssp;
1074        uint32_t esp_mask, esp, ebp;
1075    
1076        esp_mask = get_sp_mask(env->segs[R_SS].flags);
1077        ssp = env->segs[R_SS].base;
1078        ebp = EBP;
1079        esp = ESP;
1080        if (data32) {
1081            /* 32 bit */
1082            esp -= 4;
1083            while (--level) {
1084                esp -= 4;
1085                ebp -= 4;
1086                stl(ssp + (esp & esp_mask), ldl(ssp + (ebp & esp_mask)));
1087            }
1088            esp -= 4;
1089            stl(ssp + (esp & esp_mask), T1);
1090        } else {
1091            /* 16 bit */
1092            esp -= 2;
1093            while (--level) {
1094                esp -= 2;
1095                ebp -= 2;
1096                stw(ssp + (esp & esp_mask), lduw(ssp + (ebp & esp_mask)));
1097            }
1098            esp -= 2;
1099            stw(ssp + (esp & esp_mask), T1);
1100        }
1101    }
1102    
1103  void helper_lldt_T0(void)  void helper_lldt_T0(void)
1104  {  {
1105      int selector;      int selector;

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

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