VirtualBox

Changeset 46548 in vbox for trunk


Ignore:
Timestamp:
Jun 14, 2013 9:42:21 AM (12 years ago)
Author:
vboxsync
Message:

asmdefs.mac,bootsectors,*: Removed xS and sZ in favor of xCB and sCB.

Location:
trunk
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/asmdefs.mac

    r44528 r46548  
    718718
    719719
    720 ;; @def xS
     720;; @def xCB
    721721; The stack unit size  / The register unit size.
    722722
     
    749749
    750750%ifdef RT_ARCH_AMD64
    751  %define xS 8
     751 %define xCB 8
    752752 %define xSP rsp
    753753 %define xBP rbp
     
    760760 %define xWrtRIP wrt rip
    761761%else
    762  %define xS 4
     762 %define xCB 4
    763763 %define xSP esp
    764764 %define xBP ebp
  • trunk/src/VBox/Disassembler/testcase/tstAsm.mac

    r44529 r46548  
    1717
    1818%if TEST_BITS == 64
    19  %define xS 8
     19 %define xCB 8
    2020 %define xSP rsp
    2121 %define xBP rbp
     
    2828%endif
    2929%if TEST_BITS == 32
    30  %define xS 4
     30 %define xCB 4
    3131 %define xSP esp
    3232 %define xBP ebp
     
    3939%endif
    4040%if TEST_BITS == 16
    41  %define xS  1
     41 %define xCB 2
    4242 %define xSP sp
    4343 %define xBP bp
     
    4949 %define xSI si
    5050%endif
    51 %ifndef xS
     51%ifndef xCB
    5252 %error "TEST_BITS is missing or wrong."
    5353%endif
  • trunk/src/VBox/HostDrivers/Support/SUPLibTracerA.asm

    r41147 r46548  
    103103        pop     xAX
    104104        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.rflags], xAX
    105         mov     xAX, [xBP + xS]
     105        mov     xAX, [xBP + xCB]
    106106        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.rip], xAX
    107107        mov     xAX, [xBP]
    108108        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.rbp], xAX
    109         lea     xAX, [xBP + xS*2]
     109        lea     xAX, [xBP + xCB*2]
    110110        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.rsp], xAX
    111111 %ifdef ASM_CALL64_MSC
    112112        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.uVtgProbeLoc], rcx
    113         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*0], rdx
    114         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*1], r8
    115         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*2], r9
    116         mov     xAX, [xBP + xS*2 + 0x20 + xS*0]
    117         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*3], xAX
    118         mov     xAX, [xBP + xS*2 + 0x20 + xS*1]
    119         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*4], xAX
    120         mov     xAX, [xBP + xS*2 + 0x20 + xS*2]
    121         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*5], xAX
    122         mov     xAX, [xBP + xS*2 + 0x20 + xS*3]
    123         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*6], xAX
    124         mov     xAX, [xBP + xS*2 + 0x20 + xS*4]
    125         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*7], xAX
    126         mov     xAX, [xBP + xS*2 + 0x20 + xS*5]
    127         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*8], xAX
    128         mov     xAX, [xBP + xS*2 + 0x20 + xS*6]
    129         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*9], xAX
     113        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*0], rdx
     114        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*1], r8
     115        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*2], r9
     116        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*0]
     117        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*3], xAX
     118        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*1]
     119        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*4], xAX
     120        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*2]
     121        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*5], xAX
     122        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*3]
     123        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*6], xAX
     124        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*4]
     125        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*7], xAX
     126        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*5]
     127        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*8], xAX
     128        mov     xAX, [xBP + xCB*2 + 0x20 + xCB*6]
     129        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*9], xAX
    130130        mov     eax, [xCX + 4]          ; VTGPROBELOC::idProbe.
    131131 %else
    132132        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.uVtgProbeLoc], rdi
    133         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*0], rsi
    134         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*1], rdx
    135         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*2], rcx
    136         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*3], r8
    137         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*4], r9
    138         mov     xAX, [xBP + xS*2 + xS*0]
    139         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*5], xAX
    140         mov     xAX, [xBP + xS*2 + xS*1]
    141         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*6], xAX
    142         mov     xAX, [xBP + xS*2 + xS*2]
    143         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*7], xAX
    144         mov     xAX, [xBP + xS*2 + xS*3]
    145         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*8], xAX
    146         mov     xAX, [xBP + xS*2 + xS*4]
    147         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xS*9], xAX
     133        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*0], rsi
     134        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*1], rdx
     135        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*2], rcx
     136        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*3], r8
     137        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*4], r9
     138        mov     xAX, [xBP + xCB*2 + xCB*0]
     139        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*5], xAX
     140        mov     xAX, [xBP + xCB*2 + xCB*1]
     141        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*6], xAX
     142        mov     xAX, [xBP + xCB*2 + xCB*2]
     143        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*7], xAX
     144        mov     xAX, [xBP + xCB*2 + xCB*3]
     145        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*8], xAX
     146        mov     xAX, [xBP + xCB*2 + xCB*4]
     147        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX64.u.Amd64.aArgs + xCB*9], xAX
    148148        mov     eax, [xDI + 4]          ; VTGPROBELOC::idProbe.
    149149 %endif
     
    180180        pop     xAX
    181181        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.eflags], xAX
    182         mov     xAX, [xBP + xS]
     182        mov     xAX, [xBP + xCB]
    183183        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.eip], xAX
    184184        mov     xAX, [xBP]
    185185        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.ebp], xAX
    186         lea     xAX, [xBP + xS*2]
     186        lea     xAX, [xBP + xCB*2]
    187187        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.esp], xAX
    188188
    189         mov     xCX, [xBP + xS*2 + xS*0]
     189        mov     xCX, [xBP + xCB*2 + xCB*0]
    190190        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.uVtgProbeLoc], xCX ; keep, used below.
    191191
     
    193193.more:
    194194        dec     edx
    195         mov     xAX, [xBP + xS*2 + xS*xDX]
    196         mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.aArgs + xS*xDX], xAX
     195        mov     xAX, [xBP + xCB*2 + xCB*xDX]
     196        mov     [xSP + SUPTRACERUMODFIREPROBE.In + SUPDRVTRACERUSRCTX32.u.X86.aArgs + xCB*xDX], xAX
    197197        jnz     .more
    198198
  • trunk/src/VBox/Runtime/common/math/ceill.asm

    r44528 r46548  
    3939    sub     xSP, 10h
    4040
    41     fld     tword [xBP + xS*2]
     41    fld     tword [xBP + xCB*2]
    4242
    4343    ; Make it round up by modifying the fpu control word.
  • trunk/src/VBox/Runtime/common/math/cosl.asm

    r44528 r46548  
    3232; compute the cosine of ldr, measured in radians.
    3333; @returns st(0)
    34 ; @param    lrd     [rbp + xS*2]
     34; @param    lrd     [rbp + xCB*2]
    3535BEGINPROC RT_NOCRT(cosl)
    3636    push    xBP
     
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141    fcos
    4242    fnstsw  ax
  • trunk/src/VBox/Runtime/common/math/fabs.asm

    r44528 r46548  
    4949
    5050%else
    51     fld     qword [xBP + xS*2]
     51    fld     qword [xBP + xCB*2]
    5252    fabs
    5353%endif
  • trunk/src/VBox/Runtime/common/math/fabsf.asm

    r44528 r46548  
    4949
    5050%else
    51     fld     dword [xBP + xS*2]
     51    fld     dword [xBP + xCB*2]
    5252    fabs
    5353%endif
  • trunk/src/VBox/Runtime/common/math/fabsl.asm

    r44528 r46548  
    3232; Compute the absolute value of lrd (|lrd|).
    3333; @returns st(0)
    34 ; @param    lrd     [xSP + xS*2]
     34; @param    lrd     [xSP + xCB*2]
    3535BEGINPROC RT_NOCRT(fabsl)
    3636    push    xBP
    3737    mov     xBP, xSP
    3838
    39     fld     tword [xBP + xS*2]
     39    fld     tword [xBP + xCB*2]
    4040    fabs
    4141
  • trunk/src/VBox/Runtime/common/math/floor.asm

    r44528 r46548  
    4242    fld     qword [xSP]
    4343%else
    44     fld     qword [xBP + xS*2]
     44    fld     qword [xBP + xCB*2]
    4545%endif
    4646
  • trunk/src/VBox/Runtime/common/math/floorf.asm

    r44528 r46548  
    4242    fld     dword [xSP]
    4343%else
    44     fld     dword [xBP + xS*2]
     44    fld     dword [xBP + xCB*2]
    4545%endif
    4646
  • trunk/src/VBox/Runtime/common/math/floorl.asm

    r44528 r46548  
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141
    4242    ; Make it round down by modifying the fpu control word.
  • trunk/src/VBox/Runtime/common/math/ldexpl.asm

    r44528 r46548  
    3232; Computes lrd * 2^exp
    3333; @returns st(0)
    34 ; @param    lrd     [rbp + xS*2]
     34; @param    lrd     [rbp + xCB*2]
    3535; @param    exp     [ebp + 14h]  GCC:edi  MSC:ecx
    3636BEGINPROC RT_NOCRT(ldexpl)
     
    4444    fild    dword [rsp]
    4545%else
    46     fild    dword [ebp + xS*2 + RTLRD_CB]
     46    fild    dword [ebp + xCB*2 + RTLRD_CB]
    4747%endif
    48     fld     tword [xBP + xS*2]
     48    fld     tword [xBP + xCB*2]
    4949    fscale
    5050    fstp    st1
  • trunk/src/VBox/Runtime/common/math/llrintl.asm

    r44528 r46548  
    3232; Round rd to the nearest integer value, rounding according to the current rounding direction.
    3333; @returns 32-bit: edx:eax  64-bit: rax
    34 ; @param    lrd     [rbp + xS*2]
     34; @param    lrd     [rbp + xCB*2]
    3535BEGINPROC RT_NOCRT(llrintl)
    3636    push    xBP
     
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141    fistp   qword [xSP]
    4242    fwait
  • trunk/src/VBox/Runtime/common/math/logl.asm

    r44528 r46548  
    3232; compute the natural logarithm of lrd
    3333; @returns st(0)
    34 ; @param    lrd     [rbp + xS*2]
     34; @param    lrd     [rbp + xCB*2]
    3535BEGINPROC RT_NOCRT(logl)
    3636    push    xBP
     
    3939
    4040    fldln2                              ; st0=log(2)
    41     fld     tword [xBP + xS*2]          ; st1=log(2) st0=lrd
     41    fld     tword [xBP + xCB*2]         ; st1=log(2) st0=lrd
    4242    fld     st0                         ; st1=log(2) st0=lrd st0=lrd
    4343    fsub    qword [.one xWrtRIP]        ; st2=log(2) st1=lrd st0=lrd-1.0
  • trunk/src/VBox/Runtime/common/math/lrintl.asm

    r44528 r46548  
    3232; Round rd to the nearest integer value, rounding according to the current rounding direction.
    3333; @returns 32-bit: eax  64-bit: rax
    34 ; @param    lrd     [rbp + xS*2]
     34; @param    lrd     [rbp + xCB*2]
    3535BEGINPROC RT_NOCRT(lrintl)
    3636    push    xBP
     
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141%ifdef RT_ARCH_AMD64
    4242    fistp   qword [xSP]
  • trunk/src/VBox/Runtime/common/math/sinl.asm

    r44528 r46548  
    3232; Compute the sine of lrd
    3333; @returns st(0)
    34 ; @param    lrd     [xSP + xS*2]
     34; @param    lrd     [xSP + xCB*2]
    3535BEGINPROC RT_NOCRT(sinl)
    3636    push    xBP
     
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141    fsin
    4242    fnstsw  ax
  • trunk/src/VBox/Runtime/common/math/tanl.asm

    r44528 r46548  
    3232; Compute the sine of lrd
    3333; @returns st(0)
    34 ; @param    lrd     [xSP + xS*2]
     34; @param    lrd     [xSP + xCB*2]
    3535BEGINPROC RT_NOCRT(tanl)
    3636    push    xBP
     
    3838    sub     xSP, 10h
    3939
    40     fld     tword [xBP + xS*2]
     40    fld     tword [xBP + xCB*2]
    4141    fptan
    4242    fnstsw  ax
  • trunk/src/VBox/Runtime/common/math/trunc.asm

    r44528 r46548  
    4343    fld     qword [xSP]
    4444%else
    45     fld     qword [xBP + xS*2]
     45    fld     qword [xBP + xCB*2]
    4646%endif
    4747
  • trunk/src/VBox/Runtime/common/math/truncf.asm

    r44528 r46548  
    4343    fld     dword [xSP]
    4444%else
    45     fld     dword [xBP + xS*2]
     45    fld     dword [xBP + xCB*2]
    4646%endif
    4747
  • trunk/src/VBox/Runtime/common/math/truncl.asm

    r44528 r46548  
    3939    sub     xSP, 10h
    4040
    41     fld     tword [xBP + xS*2]
     41    fld     tword [xBP + xCB*2]
    4242
    4343    ; Make it truncate up by modifying the fpu control word.
  • trunk/src/VBox/VMM/VMMR0/HMR0A.asm

    r46312 r46548  
    15841584 %undef  ASM_CALL64_MSC
    15851585 %define ASM_CALL64_GCC
    1586  %define xS             8
     1586 %define xCB             8
    15871587 %define xSP            rsp
    15881588 %define xBP            rbp
  • trunk/src/VBox/VMM/VMMR0/HMR0Mixed.mac

    r46267 r46548  
    122122    ; VT-x only saves the base of the GDTR & IDTR and resets the limit to 0xffff; we must restore the limit correctly!
    123123%ifdef VMX_SKIP_GDTR_IDTR
    124     sub     xSP, xS*2
     124    sub     xSP, xCB*2
    125125    sgdt    [xSP]
    126126
    127     sub     xSP, xS*2
     127    sub     xSP, xCB*2
    128128    sidt    [xSP]
    129129%endif
     
    182182%ifdef VMX_SKIP_GDTR_IDTR
    183183    lidt    [xSP]
    184     add     xSP, xS*2
     184    add     xSP, xCB*2
    185185    lgdt    [xSP]
    186     add     xSP, xS*2
     186    add     xSP, xCB*2
    187187%endif
    188188
    189189    push    xDI
    190     mov     xDI, [xSP + xS * 3]         ; pCtx (*3 to skip the saved LDTR + TR).
     190    mov     xDI, [xSP + xCB * 3]         ; pCtx (*3 to skip the saved LDTR + TR).
    191191
    192192    mov     [ss:xDI + CPUMCTX.eax], eax
     
    218218    ; @todo get rid of sgdt
    219219    pop     xBX         ; Saved TR
    220     sub     xSP, xS*2
     220    sub     xSP, xCB*2
    221221    sgdt    [xSP]
    222222    mov     xAX, xBX
     
    225225    and     dword [ss:xAX + 4], ~0200h              ; Clear busy flag (2nd type2 bit).
    226226    ltr     bx
    227     add     xSP, xS*2
     227    add     xSP, xCB*2
    228228
    229229    pop     xAX         ; Saved LDTR
    230230    lldt    ax
    231231
    232     add     xSP, xS     ; pCtx
     232    add     xSP, xCB     ; pCtx
    233233
    234234%ifdef VMX_USE_CACHED_VMCS_ACCESSES
     
    274274%ifdef VMX_SKIP_GDTR_IDTR
    275275    lidt    [xSP]
    276     add     xSP, xS*2
     276    add     xSP, xCB*2
    277277    lgdt    [xSP]
    278     add     xSP, xS*2
     278    add     xSP, xCB*2
    279279%endif
    280280
     
    283283    ; @todo get rid of sgdt
    284284    pop     xBX         ; Saved TR
    285     sub     xSP, xS*2
     285    sub     xSP, xCB*2
    286286    sgdt    [xSP]
    287287    mov     xAX, xBX
     
    290290    and     dword [ss:xAX + 4], ~0200h              ; Clear busy flag (2nd type2 bit).
    291291    ltr     bx
    292     add     xSP, xS*2
     292    add     xSP, xCB*2
    293293
    294294    pop     xAX         ; Saved LDTR
     
    296296
    297297%ifdef VMX_USE_CACHED_VMCS_ACCESSES
    298     add     xSP, xS*2   ; pCtx + pCache
     298    add     xSP, xCB*2  ; pCtx + pCache
    299299%else
    300     add     xSP, xS     ; pCtx
     300    add     xSP, xCB     ; pCtx
    301301%endif
    302302
     
    313313%ifdef VMX_SKIP_GDTR_IDTR
    314314    lidt    [xSP]
    315     add     xSP, xS*2
     315    add     xSP, xCB*2
    316316    lgdt    [xSP]
    317     add     xSP, xS*2
     317    add     xSP, xCB*2
    318318%endif
    319319
     
    322322    ; @todo get rid of sgdt
    323323    pop     xBX         ; Saved TR
    324     sub     xSP, xS*2
     324    sub     xSP, xCB*2
    325325    sgdt    [xSP]
    326326    mov     xAX, xBX
     
    329329    and     dword [ss:xAX + 4], ~0200h              ; Clear busy flag (2nd type2 bit).
    330330    ltr     bx
    331     add     xSP, xS*2
     331    add     xSP, xCB*2
    332332
    333333    pop     xAX         ; Saved LDTR
     
    335335
    336336%ifdef VMX_USE_CACHED_VMCS_ACCESSES
    337     add     xSP, xS*2   ; pCtx + pCache
     337    add     xSP, xCB*2  ; pCtx + pCache
    338338%else
    339     add     xSP, xS     ; pCtx
     339    add     xSP, xCB    ; pCtx
    340340%endif
    341341
     
    451451    ; VT-x only saves the base of the GDTR & IDTR and resets the limit to 0xffff; we must restore the limit correctly!
    452452%ifdef VMX_SKIP_GDTR_IDTR
    453     sub     xSP, xS*2
     453    sub     xSP, xCB*2
    454454    sgdt    [xSP]
    455455
    456     sub     xSP, xS*2
     456    sub     xSP, xCB*2
    457457    sidt    [xSP]
    458458%endif
     
    519519%ifdef VMX_SKIP_GDTR_IDTR
    520520    lidt    [xSP]
    521     add     xSP, xS*2
     521    add     xSP, xCB*2
    522522    lgdt    [xSP]
    523     add     xSP, xS*2
     523    add     xSP, xCB*2
    524524%endif
    525525
    526526    push    xDI
    527     mov     xDI, [xSP + xS * 3]         ; pCtx (*3 to skip the saved LDTR + TR)
     527    mov     xDI, [xSP + xCB * 3]        ; pCtx (*3 to skip the saved LDTR + TR)
    528528
    529529    mov     qword [xDI + CPUMCTX.eax], rax
     
    559559    ; @todo get rid of sgdt
    560560    pop     xBX         ; Saved TR
    561     sub     xSP, xS*2
     561    sub     xSP, xCB*2
    562562    sgdt    [xSP]
    563563    mov     xAX, xBX
     
    566566    and     dword [xAX + 4], ~0200h                 ; Clear busy flag (2nd type2 bit).
    567567    ltr     bx
    568     add     xSP, xS*2
     568    add     xSP, xCB*2
    569569
    570570    pop     xAX         ; Saved LDTR
     
    628628%ifdef VMX_SKIP_GDTR_IDTR
    629629    lidt    [xSP]
    630     add     xSP, xS*2
     630    add     xSP, xCB*2
    631631    lgdt    [xSP]
    632     add     xSP, xS*2
     632    add     xSP, xCB*2
    633633%endif
    634634
     
    637637    ; @todo get rid of sgdt
    638638    pop     xBX         ; Saved TR
    639     sub     xSP, xS*2
     639    sub     xSP, xCB*2
    640640    sgdt    [xSP]
    641641    mov     xAX, xBX
     
    644644    and     dword [xAX + 4], ~0200h                 ; Clear busy flag (2nd type2 bit).
    645645    ltr     bx
    646     add     xSP, xS*2
     646    add     xSP, xCB*2
    647647
    648648    pop     xAX         ; Saved LDTR
     
    665665
    666666%ifdef VMX_USE_CACHED_VMCS_ACCESSES
    667     add     xSP, xS     ; pCache
     667    add     xSP, xCB    ; pCache
    668668%endif
    669669
     
    680680%ifdef VMX_SKIP_GDTR_IDTR
    681681    lidt    [xSP]
    682     add     xSP, xS*2
     682    add     xSP, xCB*2
    683683    lgdt    [xSP]
    684     add     xSP, xS*2
     684    add     xSP, xCB*2
    685685%endif
    686686
     
    689689    ; @todo get rid of sgdt
    690690    pop     xBX         ; Saved TR
    691     sub     xSP, xS*2
     691    sub     xSP, xCB*2
    692692    sgdt    [xSP]
    693693    mov     xAX, xBX
     
    696696    and     dword [xAX + 4], ~0200h                 ; Clear busy flag (2nd type2 bit).
    697697    ltr     bx
    698     add     xSP, xS*2
     698    add     xSP, xCB*2
    699699
    700700    pop     xAX         ; Saved LDTR
     
    717717
    718718%ifdef VMX_USE_CACHED_VMCS_ACCESSES
    719     add     xSP, xS     ; pCache
     719    add     xSP, xCB    ; pCache
    720720%endif
    721721
     
    770770
    771771    ; Save the Guest CPU context pointer.
    772     mov     xSI, [xBP + xS*2 + RTHCPHYS_CB*2]  ; pCtx
     772    mov     xSI, [xBP + xCB*2 + RTHCPHYS_CB*2] ; pCtx
    773773    push    xSI                                 ; push for saving the state at the end
    774774
    775775    ; Save host fs, gs, sysenter msr etc.
    776     mov     xAX, [xBP + xS*2]       ; pVMCBHostPhys (64 bits physical address; x86: take low dword only)
     776    mov     xAX, [xBP + xCB*2]      ; pVMCBHostPhys (64 bits physical address; x86: take low dword only)
    777777    push    xAX                     ; save for the vmload after vmrun
    778778    vmsave
    779779
    780780    ; Setup eax for VMLOAD.
    781     mov     xAX, [xBP + xS*2 + RTHCPHYS_CB]     ; pVMCBPhys (64 bits physical address; take low dword only)
     781    mov     xAX, [xBP + xCB*2 + RTHCPHYS_CB]     ; pVMCBPhys (64 bits physical address; take low dword only)
    782782
    783783    ; Restore Guest's general purpose registers.
     
    829829    pop     xBP
    830830%ifdef RT_ARCH_AMD64
    831     add     xSP, 4*xS
     831    add     xSP, 4*xCB
    832832%endif
    833833    ret
     
    874874
    875875    ; Save the Guest CPU context pointer.
    876     mov     rsi, [rbp + xS*2 + RTHCPHYS_CB*2]   ; pCtx
     876    mov     rsi, [rbp + xCB*2 + RTHCPHYS_CB*2]  ; pCtx
    877877    push    rsi                     ; push for saving the state at the end
    878878
    879879    ; Save host fs, gs, sysenter msr etc.
    880     mov     rax, [rbp + xS*2]       ; pVMCBHostPhys (64 bits physical address; x86: take low dword only)
     880    mov     rax, [rbp + xCB*2]      ; pVMCBHostPhys (64 bits physical address; x86: take low dword only)
    881881    push    rax                     ; Save for the vmload after vmrun
    882882    vmsave
    883883
    884884    ; Setup eax for VMLOAD.
    885     mov     rax, [rbp + xS*2 + RTHCPHYS_CB]     ; pVMCBPhys (64 bits physical address; take low dword only)
     885    mov     rax, [rbp + xCB*2 + RTHCPHYS_CB]    ; pVMCBPhys (64 bits physical address; take low dword only)
    886886
    887887    ; Restore Guest's general purpose registers.
     
    948948    popf
    949949    pop     rbp
    950     add     rsp, 4*xS
     950    add     rsp, 4*xCB
    951951    ret
    952952ENDPROC MY_NAME(SVMR0VMRun64)
  • trunk/src/VBox/VMM/testcase/Instructions/env-common.mac

    r46543 r46548  
    129129%else
    130130        mov     sBX, [VBINSTST_NAME(g_uVBInsTstSubTestIndicator)]
    131         mov     sCX, [xBP + 4 + xS]     ; expected
    132         mov     sAX, [xBP + 4 + xS + 4] ; actual
    133         mov     sDX, [xBP + 4 + xS + 8] ; reg#
     131        mov     sCX, [xBP + 4 + xCB]     ; expected
     132        mov     sAX, [xBP + 4 + xCB + 4] ; actual
     133        mov     sDX, [xBP + 4 + xCB + 8] ; reg#
    134134        push    sBX
    135135        push    sCX
  • trunk/src/VBox/VMM/testcase/tstX86-1A.asm

    r40248 r46548  
    15221522
    15231523.failed3:
    1524         add     xSP, 20h + xS
     1524        add     xSP, 20h + xCB
    15251525        jmp     .return
    15261526
     
    19421942        push    xDI
    19431943
    1944         lea     xDI, [xSP + xS * 5]
     1944        lea     xDI, [xSP + xCB * 5]
    19451945        mov     xCX, 512 / 4
    19461946        mov     eax, 0cccccccch
     
    19541954
    19551955        ; Save the FPU state.
    1956         mov     dword [xSP + xS + X86FXSTATE.FPUIP], 0
    1957         mov     dword [xSP + xS + X86FXSTATE.FPUCS], 0
    1958         mov     dword [xSP + xS + X86FXSTATE.FPUDP], 0
    1959         mov     dword [xSP + xS + X86FXSTATE.FPUDS], 0
    1960         arch_fxsave [xSP + xS]
     1956        mov     dword [xSP + xCB + X86FXSTATE.FPUIP], 0
     1957        mov     dword [xSP + xCB + X86FXSTATE.FPUCS], 0
     1958        mov     dword [xSP + xCB + X86FXSTATE.FPUDP], 0
     1959        mov     dword [xSP + xCB + X86FXSTATE.FPUDS], 0
     1960        arch_fxsave [xSP + xCB]
    19611961
    19621962        ; Save GRegs (80h bytes).
    19631963%ifdef RT_ARCH_AMD64
    1964         mov     [xSP + 512 + xS + 000h], xAX
    1965         mov     [xSP + 512 + xS + 008h], xBX
    1966         mov     [xSP + 512 + xS + 010h], xCX
    1967         mov     [xSP + 512 + xS + 018h], xDX
    1968         mov     [xSP + 512 + xS + 020h], xDI
    1969         mov     [xSP + 512 + xS + 028h], xSI
    1970         mov     [xSP + 512 + xS + 030h], xBP
    1971         mov     [xSP + 512 + xS + 038h], r8
    1972         mov     [xSP + 512 + xS + 040h], r9
    1973         mov     [xSP + 512 + xS + 048h], r10
    1974         mov     [xSP + 512 + xS + 050h], r11
    1975         mov     [xSP + 512 + xS + 058h], r12
    1976         mov     [xSP + 512 + xS + 060h], r13
    1977         mov     [xSP + 512 + xS + 068h], r14
    1978         mov     [xSP + 512 + xS + 070h], r15
     1964        mov     [xSP + 512 + xCB + 000h], xAX
     1965        mov     [xSP + 512 + xCB + 008h], xBX
     1966        mov     [xSP + 512 + xCB + 010h], xCX
     1967        mov     [xSP + 512 + xCB + 018h], xDX
     1968        mov     [xSP + 512 + xCB + 020h], xDI
     1969        mov     [xSP + 512 + xCB + 028h], xSI
     1970        mov     [xSP + 512 + xCB + 030h], xBP
     1971        mov     [xSP + 512 + xCB + 038h], r8
     1972        mov     [xSP + 512 + xCB + 040h], r9
     1973        mov     [xSP + 512 + xCB + 048h], r10
     1974        mov     [xSP + 512 + xCB + 050h], r11
     1975        mov     [xSP + 512 + xCB + 058h], r12
     1976        mov     [xSP + 512 + xCB + 060h], r13
     1977        mov     [xSP + 512 + xCB + 068h], r14
     1978        mov     [xSP + 512 + xCB + 070h], r15
    19791979        pushf
    19801980        pop     rax
    1981         mov     [xSP + 512 + xS + 078h], rax
    1982         mov     rax, [xSP + 512 + xS + 000h]
     1981        mov     [xSP + 512 + xCB + 078h], rax
     1982        mov     rax, [xSP + 512 + xCB + 000h]
    19831983%else
    1984         mov     [xSP + 512 + xS + 000h], eax
    1985         mov     [xSP + 512 + xS + 004h], eax
    1986         mov     [xSP + 512 + xS + 008h], ebx
    1987         mov     [xSP + 512 + xS + 00ch], ebx
    1988         mov     [xSP + 512 + xS + 010h], ecx
    1989         mov     [xSP + 512 + xS + 014h], ecx
    1990         mov     [xSP + 512 + xS + 018h], edx
    1991         mov     [xSP + 512 + xS + 01ch], edx
    1992         mov     [xSP + 512 + xS + 020h], edi
    1993         mov     [xSP + 512 + xS + 024h], edi
    1994         mov     [xSP + 512 + xS + 028h], esi
    1995         mov     [xSP + 512 + xS + 02ch], esi
    1996         mov     [xSP + 512 + xS + 030h], ebp
    1997         mov     [xSP + 512 + xS + 034h], ebp
    1998         mov     [xSP + 512 + xS + 038h], eax
    1999         mov     [xSP + 512 + xS + 03ch], eax
    2000         mov     [xSP + 512 + xS + 040h], eax
    2001         mov     [xSP + 512 + xS + 044h], eax
    2002         mov     [xSP + 512 + xS + 048h], eax
    2003         mov     [xSP + 512 + xS + 04ch], eax
    2004         mov     [xSP + 512 + xS + 050h], eax
    2005         mov     [xSP + 512 + xS + 054h], eax
    2006         mov     [xSP + 512 + xS + 058h], eax
    2007         mov     [xSP + 512 + xS + 05ch], eax
    2008         mov     [xSP + 512 + xS + 060h], eax
    2009         mov     [xSP + 512 + xS + 064h], eax
    2010         mov     [xSP + 512 + xS + 068h], eax
    2011         mov     [xSP + 512 + xS + 06ch], eax
    2012         mov     [xSP + 512 + xS + 070h], eax
    2013         mov     [xSP + 512 + xS + 074h], eax
     1984        mov     [xSP + 512 + xCB + 000h], eax
     1985        mov     [xSP + 512 + xCB + 004h], eax
     1986        mov     [xSP + 512 + xCB + 008h], ebx
     1987        mov     [xSP + 512 + xCB + 00ch], ebx
     1988        mov     [xSP + 512 + xCB + 010h], ecx
     1989        mov     [xSP + 512 + xCB + 014h], ecx
     1990        mov     [xSP + 512 + xCB + 018h], edx
     1991        mov     [xSP + 512 + xCB + 01ch], edx
     1992        mov     [xSP + 512 + xCB + 020h], edi
     1993        mov     [xSP + 512 + xCB + 024h], edi
     1994        mov     [xSP + 512 + xCB + 028h], esi
     1995        mov     [xSP + 512 + xCB + 02ch], esi
     1996        mov     [xSP + 512 + xCB + 030h], ebp
     1997        mov     [xSP + 512 + xCB + 034h], ebp
     1998        mov     [xSP + 512 + xCB + 038h], eax
     1999        mov     [xSP + 512 + xCB + 03ch], eax
     2000        mov     [xSP + 512 + xCB + 040h], eax
     2001        mov     [xSP + 512 + xCB + 044h], eax
     2002        mov     [xSP + 512 + xCB + 048h], eax
     2003        mov     [xSP + 512 + xCB + 04ch], eax
     2004        mov     [xSP + 512 + xCB + 050h], eax
     2005        mov     [xSP + 512 + xCB + 054h], eax
     2006        mov     [xSP + 512 + xCB + 058h], eax
     2007        mov     [xSP + 512 + xCB + 05ch], eax
     2008        mov     [xSP + 512 + xCB + 060h], eax
     2009        mov     [xSP + 512 + xCB + 064h], eax
     2010        mov     [xSP + 512 + xCB + 068h], eax
     2011        mov     [xSP + 512 + xCB + 06ch], eax
     2012        mov     [xSP + 512 + xCB + 070h], eax
     2013        mov     [xSP + 512 + xCB + 074h], eax
    20142014        pushf
    20152015        pop     eax
    2016         mov     [xSP + 512 + xS + 078h], eax
    2017         mov     [xSP + 512 + xS + 07ch], eax
    2018         mov     eax, [xSP + 512 + xS + 000h]
     2016        mov     [xSP + 512 + xCB + 078h], eax
     2017        mov     [xSP + 512 + xCB + 07ch], eax
     2018        mov     eax, [xSP + 512 + xCB + 000h]
    20192019%endif
    20202020        ret
     
    20292029;
    20302030CompareFPUAndGRegsOnStack:
    2031         lea     xSP, [xSP - (1024 - xS)]
     2031        lea     xSP, [xSP - (1024 - xCB)]
    20322032        call    SaveFPUAndGRegsToStack
    20332033
     
    20372037
    20382038        mov     xCX, 640
    2039         lea     xSI, [xSP + xS*3]
     2039        lea     xSI, [xSP + xCB*3]
    20402040        lea     xDI, [xSI + 1024]
    20412041
     
    20452045
    20462046        ;int3
    2047         lea     xAX, [xSP + xS*3]
     2047        lea     xAX, [xSP + xCB*3]
    20482048        xchg    xAX, xSI
    20492049        sub     xAX, xSI
     
    20602060        pop     xDI
    20612061        pop     xSI
    2062         lea     xSP, [xSP + (1024 - xS)]
     2062        lea     xSP, [xSP + (1024 - xCB)]
    20632063        or      eax, eax
    20642064        ret
     
    20732073;
    20742074CompareFPUAndGRegsOnStackIgnoreOpAndIp:
    2075         lea     xSP, [xSP - (1024 - xS)]
     2075        lea     xSP, [xSP - (1024 - xCB)]
    20762076        call    SaveFPUAndGRegsToStack
    20772077
     
    20812081
    20822082        mov     xCX, 640
    2083         lea     xSI, [xSP + xS*3]
     2083        lea     xSI, [xSP + xCB*3]
    20842084        lea     xDI, [xSI + 1024]
    20852085
     
    20942094
    20952095        ;int3
    2096         lea     xAX, [xSP + xS*3]
     2096        lea     xAX, [xSP + xCB*3]
    20972097        xchg    xAX, xSI
    20982098        sub     xAX, xSI
     
    21092109        pop     xDI
    21102110        pop     xSI
    2111         lea     xSP, [xSP + (1024 - xS)]
     2111        lea     xSP, [xSP + (1024 - xCB)]
    21122112        or      eax, eax
    21132113        ret
     
    24942494;
    24952495; @returns ZF=1 on success, ZF=0 on failure.
    2496 ; @param    xSP + xS    fxsave image followed by fnstenv.
     2496; @param    xSP + xCB    fxsave image followed by fnstenv.
    24972497; @param    xCX         Opcode address (no prefixes).
    24982498;
     
    25042504        ; Check the IP.
    25052505%ifdef RT_ARCH_AMD64
    2506         cmp     rcx, [xBP + xS*2 + X86FXSTATE.FPUIP]
     2506        cmp     rcx, [xBP + xCB*2 + X86FXSTATE.FPUIP]
    25072507%else
    2508         cmp     ecx, [xBP + xS*2 + X86FXSTATE.FPUIP]
     2508        cmp     ecx, [xBP + xCB*2 + X86FXSTATE.FPUIP]
    25092509%endif
    25102510        jne     .failure1
     
    25122512.check_fpucs:
    25132513        mov     ax, cs
    2514         cmp     ax, [xBP + xS*2 + 512 + X86FSTENV32P.FPUCS]
     2514        cmp     ax, [xBP + xCB*2 + 512 + X86FSTENV32P.FPUCS]
    25152515        jne     .failure2
    25162516
     
    25202520        and     ax, 07ffh
    25212521
    2522         cmp     ax, [xBP + xS*2 + X86FXSTATE.FOP]
     2522        cmp     ax, [xBP + xCB*2 + X86FXSTATE.FOP]
    25232523        je      .success
    2524         cmp     ax, [xBP + xS*2 + 512 + X86FSTENV32P.FOP]
     2524        cmp     ax, [xBP + xCB*2 + 512 + X86FSTENV32P.FOP]
    25252525        je      .success
    25262526
    25272527;        xor     ax, ax
    2528 ;        cmp     ax, [xBP + xS*2 + X86FXSTATE.FOP]
     2528;        cmp     ax, [xBP + xCB*2 + X86FXSTATE.FOP]
    25292529;        jne     .failure3
    25302530
     
    25402540        ; fnstenv image instead even if that only contains the lower 32-bit.
    25412541        xor     eax, eax
    2542         cmp     xAX, [xBP + xS*2 + X86FXSTATE.FPUIP]
     2542        cmp     xAX, [xBP + xCB*2 + X86FXSTATE.FPUIP]
    25432543        jne     .failure1_for_real
    2544         cmp     xAX, [xBP + xS*2 + X86FXSTATE.FPUDP]
     2544        cmp     xAX, [xBP + xCB*2 + X86FXSTATE.FPUDP]
    25452545        jne     .failure1_for_real
    2546         cmp     ecx, [xBP + xS*2 + 512 + X86FSTENV32P.FPUIP]
     2546        cmp     ecx, [xBP + xCB*2 + 512 + X86FSTENV32P.FPUIP]
    25472547        je      .check_fpucs
    25482548.failure1_for_real:
     
    26382638;
    26392639; @returns ZF=1 on success, ZF=0+EAX on failure.
    2640 ; @param    xSP + xS    fxsave image followed by fnstenv.
     2640; @param    xSP + xCB    fxsave image followed by fnstenv.
    26412641; @param    xCX         Opcode address (no prefixes).
    26422642; @param    xDX         Memory address (DS relative).
     
    26492649        ; Check the memory operand.
    26502650%ifdef RT_ARCH_AMD64
    2651         cmp     rdx, [xBP + xS*2 + X86FXSTATE.FPUDP]
     2651        cmp     rdx, [xBP + xCB*2 + X86FXSTATE.FPUDP]
    26522652%else
    2653         cmp     edx, [xBP + xS*2 + X86FXSTATE.FPUDP]
     2653        cmp     edx, [xBP + xCB*2 + X86FXSTATE.FPUDP]
    26542654%endif
    26552655        jne     .failure1
     
    26572657.check_fpuds:
    26582658        mov     ax, ds
    2659         cmp     ax, [xBP + xS*2 + 512 + X86FSTENV32P.FPUDS]
     2659        cmp     ax, [xBP + xCB*2 + 512 + X86FSTENV32P.FPUDS]
    26602660        jne     .failure2
    26612661
     
    26702670        ; if there is a flag controlling this anywhere...
    26712671        xor        eax, eax
    2672         cmp     xAX, [xBP + xS*2 + X86FXSTATE.FPUDP]
     2672        cmp     xAX, [xBP + xCB*2 + X86FXSTATE.FPUDP]
    26732673        jne     .failure1_for_real
    2674         cmp     xAX, [xBP + xS*2 + X86FXSTATE.FPUIP]
     2674        cmp     xAX, [xBP + xCB*2 + X86FXSTATE.FPUIP]
    26752675        jne     .failure1_for_real
    2676         cmp     edx, [xBP + xS*2 + 512 + X86FSTENV32P.FPUDP]
     2676        cmp     edx, [xBP + xCB*2 + 512 + X86FSTENV32P.FPUDP]
    26772677        je      .check_fpuds
    26782678.failure1_for_real:
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette