Commit 20f32282379f20e83eeb2f3456ab6cc8431029b8

Authored by bellard
1 parent c27004ec

initial x86_64 support


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1190 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 24 additions and 22 deletions
... ... @@ -268,6 +268,8 @@ void isa_unassign_ioport(int start, int length)
268 268 }
269 269 }
270 270  
  271 +/***********************************************************/
  272 +
271 273 void pstrcpy(char *buf, int buf_size, const char *str)
272 274 {
273 275 int c;
... ... @@ -2064,7 +2066,7 @@ int qemu_loadvm(const char *filename)
2064 2066 static void cpu_put_seg(QEMUFile *f, SegmentCache *dt)
2065 2067 {
2066 2068 qemu_put_be32(f, dt->selector);
2067   - qemu_put_be32(f, (uint32_t)dt->base);
  2069 + qemu_put_betl(f, dt->base);
2068 2070 qemu_put_be32(f, dt->limit);
2069 2071 qemu_put_be32(f, dt->flags);
2070 2072 }
... ... @@ -2072,7 +2074,7 @@ static void cpu_put_seg(QEMUFile *f, SegmentCache *dt)
2072 2074 static void cpu_get_seg(QEMUFile *f, SegmentCache *dt)
2073 2075 {
2074 2076 dt->selector = qemu_get_be32(f);
2075   - dt->base = (uint8_t *)qemu_get_be32(f);
  2077 + dt->base = qemu_get_betl(f);
2076 2078 dt->limit = qemu_get_be32(f);
2077 2079 dt->flags = qemu_get_be32(f);
2078 2080 }
... ... @@ -2084,11 +2086,11 @@ void cpu_save(QEMUFile *f, void *opaque)
2084 2086 uint32_t hflags;
2085 2087 int i;
2086 2088  
2087   - for(i = 0; i < 8; i++)
2088   - qemu_put_be32s(f, &env->regs[i]);
2089   - qemu_put_be32s(f, &env->eip);
2090   - qemu_put_be32s(f, &env->eflags);
2091   - qemu_put_be32s(f, &env->eflags);
  2089 + for(i = 0; i < CPU_NB_REGS; i++)
  2090 + qemu_put_betls(f, &env->regs[i]);
  2091 + qemu_put_betls(f, &env->eip);
  2092 + qemu_put_betls(f, &env->eflags);
  2093 + qemu_put_betl(f, 0); /* XXX: suppress that */
2092 2094 hflags = env->hflags; /* XXX: suppress most of the redundant hflags */
2093 2095 qemu_put_be32s(f, &hflags);
2094 2096  
... ... @@ -2126,13 +2128,13 @@ void cpu_save(QEMUFile *f, void *opaque)
2126 2128 qemu_put_be32s(f, &env->sysenter_esp);
2127 2129 qemu_put_be32s(f, &env->sysenter_eip);
2128 2130  
2129   - qemu_put_be32s(f, &env->cr[0]);
2130   - qemu_put_be32s(f, &env->cr[2]);
2131   - qemu_put_be32s(f, &env->cr[3]);
2132   - qemu_put_be32s(f, &env->cr[4]);
  2131 + qemu_put_betls(f, &env->cr[0]);
  2132 + qemu_put_betls(f, &env->cr[2]);
  2133 + qemu_put_betls(f, &env->cr[3]);
  2134 + qemu_put_betls(f, &env->cr[4]);
2133 2135  
2134 2136 for(i = 0; i < 8; i++)
2135   - qemu_put_be32s(f, &env->dr[i]);
  2137 + qemu_put_betls(f, &env->dr[i]);
2136 2138  
2137 2139 /* MMU */
2138 2140 qemu_put_be32s(f, &env->a20_mask);
... ... @@ -2147,11 +2149,11 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
2147 2149  
2148 2150 if (version_id != 2)
2149 2151 return -EINVAL;
2150   - for(i = 0; i < 8; i++)
2151   - qemu_get_be32s(f, &env->regs[i]);
2152   - qemu_get_be32s(f, &env->eip);
2153   - qemu_get_be32s(f, &env->eflags);
2154   - qemu_get_be32s(f, &env->eflags);
  2152 + for(i = 0; i < CPU_NB_REGS; i++)
  2153 + qemu_get_betls(f, &env->regs[i]);
  2154 + qemu_get_betls(f, &env->eip);
  2155 + qemu_get_betls(f, &env->eflags);
  2156 + qemu_get_betl(f); /* XXX: suppress that */
2155 2157 qemu_get_be32s(f, &hflags);
2156 2158  
2157 2159 qemu_get_be16s(f, &fpuc);
... ... @@ -2185,13 +2187,13 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
2185 2187 qemu_get_be32s(f, &env->sysenter_esp);
2186 2188 qemu_get_be32s(f, &env->sysenter_eip);
2187 2189  
2188   - qemu_get_be32s(f, &env->cr[0]);
2189   - qemu_get_be32s(f, &env->cr[2]);
2190   - qemu_get_be32s(f, &env->cr[3]);
2191   - qemu_get_be32s(f, &env->cr[4]);
  2190 + qemu_get_betls(f, &env->cr[0]);
  2191 + qemu_get_betls(f, &env->cr[2]);
  2192 + qemu_get_betls(f, &env->cr[3]);
  2193 + qemu_get_betls(f, &env->cr[4]);
2192 2194  
2193 2195 for(i = 0; i < 8; i++)
2194   - qemu_get_be32s(f, &env->dr[i]);
  2196 + qemu_get_betls(f, &env->dr[i]);
2195 2197  
2196 2198 /* MMU */
2197 2199 qemu_get_be32s(f, &env->a20_mask);
... ...