Changeset 7095 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Feb 22, 2008 12:41:56 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 28339
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/CPUM.cpp
r6178 r7095 46 46 *******************************************************************************/ 47 47 /** The saved state version. */ 48 #define CPUM_SAVED_STATE_VERSION 548 #define CPUM_SAVED_STATE_VERSION 6 49 49 50 50 -
trunk/src/VBox/VMM/CPUMInternal.mac
r7092 r7095 55 55 ; 56 56 alignb 32 57 .Host.fpu resb 51257 .Host.fpu resb FPUSTATE_SIZE 58 58 59 59 %if HC_ARCH_BITS == 64 || fVBOX_WITH_HYBIRD_32BIT_KERNEL … … 168 168 ; 169 169 alignb 32 ; the padding 170 .Hyper.fpu resb 512171 172 .Hyper.edi res d1173 .Hyper.esi res d1174 .Hyper.ebp res d1175 .Hyper.eax res d1176 .Hyper.ebx res d1177 .Hyper.edx res d1178 .Hyper.ecx res d1170 .Hyper.fpu resb FPUSTATE_SIZE 171 172 .Hyper.edi resq 1 173 .Hyper.esi resq 1 174 .Hyper.ebp resq 1 175 .Hyper.eax resq 1 176 .Hyper.ebx resq 1 177 .Hyper.edx resq 1 178 .Hyper.ecx resq 1 179 179 .Hyper.esp resd 1 180 180 .Hyper.ss resw 1 181 .Hyper.ssPadding resw 1181 .Hyper.ssPadding resw 3 182 182 .Hyper.gs resw 1 183 183 .Hyper.gsPadding resw 1 … … 190 190 .Hyper.cs resw 1 191 191 .Hyper.csPadding resw 1 192 .Hyper.eflags resd 1 193 .Hyper.eip resd 1 192 .Hyper.eflags resq 1 193 .Hyper.eip resq 1 194 .Hyper.r8 resq 1 195 .Hyper.r9 resq 1 196 .Hyper.r10 resq 1 197 .Hyper.r11 resq 1 198 .Hyper.r12 resq 1 199 .Hyper.r13 resq 1 200 .Hyper.r14 resq 1 201 .Hyper.r15 resq 1 202 194 203 .Hyper.esHid.u32Base resd 1 195 204 .Hyper.esHid.u32Limit resd 1 … … 216 225 .Hyper.gsHid.Attr resd 1 217 226 218 .Hyper.cr0 resd 1 219 .Hyper.cr2 resd 1 220 .Hyper.cr3 resd 1 221 .Hyper.cr4 resd 1 222 223 .Hyper.dr0 resd 1 224 .Hyper.dr1 resd 1 225 .Hyper.dr2 resd 1 226 .Hyper.dr3 resd 1 227 .Hyper.dr4 resd 1 228 .Hyper.dr5 resd 1 229 .Hyper.dr6 resd 1 230 .Hyper.dr7 resd 1 227 .Hyper.cr0 resq 1 228 .Hyper.cr2 resq 1 229 .Hyper.cr3 resq 1 230 .Hyper.cr4 resq 1 231 .Hyper.cr8 resq 1 232 233 .Hyper.dr0 resq 1 234 .Hyper.dr1 resq 1 235 .Hyper.dr2 resq 1 236 .Hyper.dr3 resq 1 237 .Hyper.dr4 resq 1 238 .Hyper.dr5 resq 1 239 .Hyper.dr6 resq 1 240 .Hyper.dr7 resq 1 231 241 232 242 .Hyper.gdtr resb 6 ; GDT limit + linear address … … 263 273 ; 264 274 alignb 32 265 .Guest.fpu resb 512266 267 .Guest.edi res d1268 .Guest.esi res d1269 .Guest.ebp res d1270 .Guest.eax res d1271 .Guest.ebx res d1272 .Guest.edx res d1273 .Guest.ecx res d1275 .Guest.fpu resb FPUSTATE_SIZE 276 277 .Guest.edi resq 1 278 .Guest.esi resq 1 279 .Guest.ebp resq 1 280 .Guest.eax resq 1 281 .Guest.ebx resq 1 282 .Guest.edx resq 1 283 .Guest.ecx resq 1 274 284 .Guest.esp resd 1 275 285 .Guest.ss resw 1 276 .Guest.ssPadding resw 1286 .Guest.ssPadding resw 3 277 287 .Guest.gs resw 1 278 288 .Guest.gsPadding resw 1 … … 285 295 .Guest.cs resw 1 286 296 .Guest.csPadding resw 1 287 .Guest.eflags resd 1 288 .Guest.eip resd 1 297 .Guest.eflags resq 1 298 .Guest.eip resq 1 299 .Guest.r8 resq 1 300 .Guest.r9 resq 1 301 .Guest.r10 resq 1 302 .Guest.r11 resq 1 303 .Guest.r12 resq 1 304 .Guest.r13 resq 1 305 .Guest.r14 resq 1 306 .Guest.r15 resq 1 307 289 308 .Guest.esHid.u32Base resd 1 290 309 .Guest.esHid.u32Limit resd 1 … … 311 330 .Guest.gsHid.Attr resd 1 312 331 313 .Guest.cr0 resd 1 314 .Guest.cr2 resd 1 315 .Guest.cr3 resd 1 316 .Guest.cr4 resd 1 317 318 .Guest.dr0 resd 1 319 .Guest.dr1 resd 1 320 .Guest.dr2 resd 1 321 .Guest.dr3 resd 1 322 .Guest.dr4 resd 1 323 .Guest.dr5 resd 1 324 .Guest.dr6 resd 1 325 .Guest.dr7 resd 1 332 .Guest.cr0 resq 1 333 .Guest.cr2 resq 1 334 .Guest.cr3 resq 1 335 .Guest.cr4 resq 1 336 .Guest.cr8 resq 1 337 338 .Guest.dr0 resq 1 339 .Guest.dr1 resq 1 340 .Guest.dr2 resq 1 341 .Guest.dr3 resq 1 342 .Guest.dr4 resq 1 343 .Guest.dr5 resq 1 344 .Guest.dr6 resq 1 345 .Guest.dr7 resq 1 326 346 327 347 .Guest.gdtr resb 6 ; GDT limit + linear address … … 387 407 388 408 ; debug stuff... 389 .GuestEntry resb 800 409 .GuestEntry resb 960 410 390 411 endstruc 391 412 -
trunk/src/VBox/VMM/VMMSwitcher/AMD64ToPAE.asm
r5999 r7095 631 631 632 632 ; 633 ; Guest Context (assumes CPUMCTXCORE layout).633 ; Guest Context (assumes esp now points to CPUMCTXCORE structure). 634 634 ; 635 635 ; general purpose registers (layout is pushad) 636 pop dword [edx + CPUM.Guest.edi] 637 pop dword [edx + CPUM.Guest.esi] 638 pop dword [edx + CPUM.Guest.ebp] 639 pop dword [edx + CPUM.Guest.eax] 640 pop dword [edx + CPUM.Guest.ebx] 641 pop dword [edx + CPUM.Guest.edx] 642 pop dword [edx + CPUM.Guest.ecx] 643 pop dword [edx + CPUM.Guest.esp] 644 pop dword [edx + CPUM.Guest.ss] 645 pop dword [edx + CPUM.Guest.gs] 646 pop dword [edx + CPUM.Guest.fs] 647 pop dword [edx + CPUM.Guest.es] 648 pop dword [edx + CPUM.Guest.ds] 649 pop dword [edx + CPUM.Guest.cs] 636 push eax ; save return code. 637 mov eax, [esp + 4 + CPUMCTXCORE.edi] 638 mov [edx + CPUM.Guest.edi], eax 639 mov eax, [esp + 4 + CPUMCTXCORE.esi] 640 mov [edx + CPUM.Guest.esi], eax 641 mov eax, [esp + 4 + CPUMCTXCORE.ebp] 642 mov [edx + CPUM.Guest.ebp], eax 643 mov eax, [esp + 4 + CPUMCTXCORE.eax] 644 mov [edx + CPUM.Guest.eax], eax 645 mov eax, [esp + 4 + CPUMCTXCORE.ebx] 646 mov [edx + CPUM.Guest.ebx], eax 647 mov eax, [esp + 4 + CPUMCTXCORE.edx] 648 mov [edx + CPUM.Guest.edx], eax 649 mov eax, [esp + 4 + CPUMCTXCORE.ecx] 650 mov [edx + CPUM.Guest.ecx], eax 651 mov eax, [esp + 4 + CPUMCTXCORE.esp] 652 mov [edx + CPUM.Guest.esp], eax 653 ; selectors 654 mov eax, [esp + 4 + CPUMCTXCORE.ss] 655 mov [edx + CPUM.Guest.ss], eax 656 mov eax, [esp + 4 + CPUMCTXCORE.gs] 657 mov [edx + CPUM.Guest.gs], eax 658 mov eax, [esp + 4 + CPUMCTXCORE.fs] 659 mov [edx + CPUM.Guest.fs], eax 660 mov eax, [esp + 4 + CPUMCTXCORE.es] 661 mov [edx + CPUM.Guest.es], eax 662 mov eax, [esp + 4 + CPUMCTXCORE.ds] 663 mov [edx + CPUM.Guest.ds], eax 664 mov eax, [esp + 4 + CPUMCTXCORE.cs] 665 mov [edx + CPUM.Guest.cs], eax 650 666 ; flags 651 pop dword [edx + CPUM.Guest.eflags] 667 mov eax, [esp + 4 + CPUMCTXCORE.eflags] 668 mov [edx + CPUM.Guest.eflags], eax 652 669 ; eip 653 pop dword [edx + CPUM.Guest.eip] 670 mov eax, [esp + 4 + CPUMCTXCORE.eip] 671 mov [edx + CPUM.Guest.eip], eax 672 ; jump to common worker code. 673 pop eax ; restore return code. 674 675 add esp, CPUMCTXCORE_size ; skip CPUMCTXCORE structure 676 654 677 jmp vmmGCGuestToHostAsm_EIPDone 655 678 ENDPROC VMMGCGuestToHostAsmGuestCtx -
trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac
r5999 r7095 532 532 push eax 533 533 534 ; @todo do a rep movsd instead535 534 mov eax, [esp + 4 + CPUMCTXCORE.eax] 536 535 mov [edx + CPUM.Guest.eax], eax
Note:
See TracChangeset
for help on using the changeset viewer.