Changeset 9250 in vbox for trunk/src/VBox
- Timestamp:
- May 30, 2008 1:00:35 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/EMAllA.asm
r8225 r9250 843 843 844 844 %if 0 845 ;; untested code!! 846 845 847 ;; 846 848 ; Emulate LOCK CMPXCHG instruction, CDECL calling conv. … … 898 900 pop eax 899 901 900 mov edx, [esp + 14h + 4] ; eflags pointer901 mov dword [edx], eax902 903 902 pop ebx 904 mov eax, VINF_SUCCESS 905 retn 906 907 ; Read error - we will be here after our page fault handler. 908 GLOBALNAME EMEmulateLockCmpXchg32_Error 909 pop ebx 910 mov eax, VERR_ACCESS_DENIED 911 ret 903 retn 912 904 913 905 ENDPROC EMEmulateLockCmpXchg32 … … 968 960 pop eax 969 961 970 mov edx, [esp + 14h + 4] ; eflags pointer971 mov dword [edx], eax972 973 962 pop ebx 974 mov eax, VINF_SUCCESS 975 retn 976 977 ; Read error - we will be here after our page fault handler. 978 GLOBALNAME EMEmulateCmpXchg32_Error 979 pop ebx 980 mov eax, VERR_ACCESS_DENIED 981 ret 963 retn 964 982 965 ENDPROC EMEmulateCmpXchg32 983 966 … … 1007 990 1008 991 lock cmpxchg8b qword [ebp] ; do CMPXCHG8B 1009 mov dword [esp + 08h + 8], eax 1010 mov dword [esp + 0ch + 8], edx 992 mov ebx, dword [esp + 08h + 8] 993 mov dword [ebx], eax 994 mov ebx, dword [esp + 0ch + 8] 995 mov dword [ebx], edx 1011 996 1012 997 ; collect flags and return. 1013 998 pushf 1014 999 pop eax 1015 1016 mov edx, [esp + 18h + 8] ; eflags pointer1017 mov dword [edx], eax1018 1000 1019 1001 pop ebx 1020 1002 pop ebp 1021 mov eax, VINF_SUCCESS 1022 retn 1023 1024 ; Read error - we will be here after our page fault handler. 1025 GLOBALNAME EMEmulateLockCmpXchg8b32_Error 1026 pop ebx 1027 pop ebp 1028 mov eax, VERR_ACCESS_DENIED 1029 ret 1003 retn 1030 1004 1031 1005 ENDPROC EMEmulateLockCmpXchg8b32 … … 1056 1030 1057 1031 cmpxchg8b qword [ebp] ; do CMPXCHG8B 1058 mov dword [esp + 08h + 8], eax 1059 mov dword [esp + 0ch + 8], edx 1032 mov ebx, dword [esp + 08h + 8] 1033 mov dword [ebx], eax 1034 mov ebx, dword [esp + 0ch + 8] 1035 mov dword [ebx], edx 1060 1036 1061 1037 ; collect flags and return. 1062 1038 pushf 1063 1039 pop eax 1064 1065 mov edx, [esp + 18h + 8] ; eflags pointer1066 mov dword [edx], eax1067 1040 1068 1041 pop ebx 1069 1042 pop ebp 1070 mov eax, VINF_SUCCESS 1071 retn 1072 1073 ; Read error - we will be here after our page fault handler. 1074 GLOBALNAME EMEmulateCmpXchg8b32_Error 1075 pop ebx 1076 pop ebp 1077 mov eax, VERR_ACCESS_DENIED 1078 ret 1043 retn 1079 1044 ENDPROC EMEmulateCmpXchg8b32 1080 1045
Note:
See TracChangeset
for help on using the changeset viewer.