Changeset 66878 in vbox for trunk/src/VBox/VMM/VMMR0/HMR0A.asm
- Timestamp:
- May 12, 2017 12:40:17 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMR0A.asm
r65932 r66878 808 808 ; @remarks This is essentially the same code as hmR0SVMRunWrapXMM, only the parameters differ a little bit. 809 809 ; 810 ; @remarks Drivers shouldn't use AVX registers without saving+loading: 811 ; https://msdn.microsoft.com/en-us/library/windows/hardware/ff545910%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 812 ; However the compiler docs have different idea: 813 ; https://msdn.microsoft.com/en-us/library/9z1stfyw.aspx 814 ; We'll go with the former for now. 815 ; 810 816 ; ASSUMING 64-bit and windows for now. 817 ; 811 818 ALIGNCODE(16) 812 819 BEGINPROC hmR0VMXStartVMWrapXMM 813 820 push xBP 814 821 mov xBP, xSP 815 sub xSP, 0 a0h + 040h; Don't bother optimizing the frame size.822 sub xSP, 0b0h + 040h ; Don't bother optimizing the frame size. 816 823 817 824 ; spill input parameters. … … 853 860 movdqa [rsp + 040h + 080h], xmm14 854 861 movdqa [rsp + 040h + 090h], xmm15 862 stmxcsr [rsp + 040h + 0a0h] 855 863 856 864 mov r10, [xBP + 018h] ; pCtx … … 901 909 movdqa xmm14, [rsp + 040h + 080h] 902 910 movdqa xmm15, [rsp + 040h + 090h] 911 ldmxcsr [rsp + 040h + 0a0h] 903 912 leave 904 913 ret … … 926 935 movdqa xmm14, [r10 + XMM_OFF_IN_X86FXSTATE + 0e0h] 927 936 movdqa xmm15, [r10 + XMM_OFF_IN_X86FXSTATE + 0f0h] 937 ldmxcsr [r10 + X86FXSTATE.MXCSR] 928 938 929 939 ; Make the call (same as in the other case ). … … 940 950 mov r10, [xBP + 018h] ; pCtx 941 951 mov r10, [r10 + CPUMCTX.pXStateR0] 952 stmxcsr [r10 + X86FXSTATE.MXCSR] 942 953 movdqa [r10 + XMM_OFF_IN_X86FXSTATE + 000h], xmm0 943 954 movdqa [r10 + XMM_OFF_IN_X86FXSTATE + 010h], xmm1 … … 976 987 ; @remarks This is essentially the same code as hmR0VMXStartVMWrapXMM, only the parameters differ a little bit. 977 988 ; 989 ; @remarks Drivers shouldn't use AVX registers without saving+loading: 990 ; https://msdn.microsoft.com/en-us/library/windows/hardware/ff545910%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 991 ; However the compiler docs have different idea: 992 ; https://msdn.microsoft.com/en-us/library/9z1stfyw.aspx 993 ; We'll go with the former for now. 994 ; 978 995 ; ASSUMING 64-bit and windows for now. 979 996 ALIGNCODE(16) … … 981 998 push xBP 982 999 mov xBP, xSP 983 sub xSP, 0 a0h + 040h ; Don't bother optimizing the frame size.1000 sub xSP, 0b0h + 040h ; Don't bother optimizing the frame size. 984 1001 985 1002 ; spill input parameters. … … 1021 1038 movdqa [rsp + 040h + 080h], xmm14 1022 1039 movdqa [rsp + 040h + 090h], xmm15 1040 stmxcsr [rsp + 040h + 0a0h] 1023 1041 1024 1042 mov r10, [xBP + 020h] ; pCtx … … 1069 1087 movdqa xmm14, [rsp + 040h + 080h] 1070 1088 movdqa xmm15, [rsp + 040h + 090h] 1089 ldmxcsr [rsp + 040h + 0a0h] 1071 1090 leave 1072 1091 ret … … 1094 1113 movdqa xmm14, [r10 + XMM_OFF_IN_X86FXSTATE + 0e0h] 1095 1114 movdqa xmm15, [r10 + XMM_OFF_IN_X86FXSTATE + 0f0h] 1115 ldmxcsr [r10 + X86FXSTATE.MXCSR] 1096 1116 1097 1117 ; Make the call (same as in the other case ). … … 1108 1128 mov r10, [xBP + 020h] ; pCtx 1109 1129 mov r10, [r10 + CPUMCTX.pXStateR0] 1130 stmxcsr [r10 + X86FXSTATE.MXCSR] 1110 1131 movdqa [r10 + XMM_OFF_IN_X86FXSTATE + 000h], xmm0 1111 1132 movdqa [r10 + XMM_OFF_IN_X86FXSTATE + 010h], xmm1
Note:
See TracChangeset
for help on using the changeset viewer.