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,6 +268,8 @@ void isa_unassign_ioport(int start, int length)
268 } 268 }
269 } 269 }
270 270
  271 +/***********************************************************/
  272 +
271 void pstrcpy(char *buf, int buf_size, const char *str) 273 void pstrcpy(char *buf, int buf_size, const char *str)
272 { 274 {
273 int c; 275 int c;
@@ -2064,7 +2066,7 @@ int qemu_loadvm(const char *filename) @@ -2064,7 +2066,7 @@ int qemu_loadvm(const char *filename)
2064 static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) 2066 static void cpu_put_seg(QEMUFile *f, SegmentCache *dt)
2065 { 2067 {
2066 qemu_put_be32(f, dt->selector); 2068 qemu_put_be32(f, dt->selector);
2067 - qemu_put_be32(f, (uint32_t)dt->base); 2069 + qemu_put_betl(f, dt->base);
2068 qemu_put_be32(f, dt->limit); 2070 qemu_put_be32(f, dt->limit);
2069 qemu_put_be32(f, dt->flags); 2071 qemu_put_be32(f, dt->flags);
2070 } 2072 }
@@ -2072,7 +2074,7 @@ static void cpu_put_seg(QEMUFile *f, SegmentCache *dt) @@ -2072,7 +2074,7 @@ static void cpu_put_seg(QEMUFile *f, SegmentCache *dt)
2072 static void cpu_get_seg(QEMUFile *f, SegmentCache *dt) 2074 static void cpu_get_seg(QEMUFile *f, SegmentCache *dt)
2073 { 2075 {
2074 dt->selector = qemu_get_be32(f); 2076 dt->selector = qemu_get_be32(f);
2075 - dt->base = (uint8_t *)qemu_get_be32(f); 2077 + dt->base = qemu_get_betl(f);
2076 dt->limit = qemu_get_be32(f); 2078 dt->limit = qemu_get_be32(f);
2077 dt->flags = qemu_get_be32(f); 2079 dt->flags = qemu_get_be32(f);
2078 } 2080 }
@@ -2084,11 +2086,11 @@ void cpu_save(QEMUFile *f, void *opaque) @@ -2084,11 +2086,11 @@ void cpu_save(QEMUFile *f, void *opaque)
2084 uint32_t hflags; 2086 uint32_t hflags;
2085 int i; 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 hflags = env->hflags; /* XXX: suppress most of the redundant hflags */ 2094 hflags = env->hflags; /* XXX: suppress most of the redundant hflags */
2093 qemu_put_be32s(f, &hflags); 2095 qemu_put_be32s(f, &hflags);
2094 2096
@@ -2126,13 +2128,13 @@ void cpu_save(QEMUFile *f, void *opaque) @@ -2126,13 +2128,13 @@ void cpu_save(QEMUFile *f, void *opaque)
2126 qemu_put_be32s(f, &env->sysenter_esp); 2128 qemu_put_be32s(f, &env->sysenter_esp);
2127 qemu_put_be32s(f, &env->sysenter_eip); 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 for(i = 0; i < 8; i++) 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 /* MMU */ 2139 /* MMU */
2138 qemu_put_be32s(f, &env->a20_mask); 2140 qemu_put_be32s(f, &env->a20_mask);
@@ -2147,11 +2149,11 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) @@ -2147,11 +2149,11 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
2147 2149
2148 if (version_id != 2) 2150 if (version_id != 2)
2149 return -EINVAL; 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 qemu_get_be32s(f, &hflags); 2157 qemu_get_be32s(f, &hflags);
2156 2158
2157 qemu_get_be16s(f, &fpuc); 2159 qemu_get_be16s(f, &fpuc);
@@ -2185,13 +2187,13 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) @@ -2185,13 +2187,13 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
2185 qemu_get_be32s(f, &env->sysenter_esp); 2187 qemu_get_be32s(f, &env->sysenter_esp);
2186 qemu_get_be32s(f, &env->sysenter_eip); 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 for(i = 0; i < 8; i++) 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 /* MMU */ 2198 /* MMU */
2197 qemu_get_be32s(f, &env->a20_mask); 2199 qemu_get_be32s(f, &env->a20_mask);