Changeset 66167 in vbox for trunk/src/VBox/Runtime/common
- Timestamp:
- Mar 20, 2017 1:20:49 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/asm/ASMCpuIdExSlow.asm
r62477 r66167 50 50 mov xBP, xSP 51 51 push xBX 52 %if def RT_ARCH_X8652 %if ARCH_BITS == 32 53 53 push edi 54 %elif ARCH_BITS == 16 55 push di 56 push es 54 57 %endif 55 58 56 59 %ifdef ASM_CALL64_MSC 60 %if ARCH_BITS != 64 61 %error ARCH_BITS mismatch? 62 %endif 57 63 mov eax, ecx 58 64 mov ebx, edx … … 69 75 mov r10, [rbp + 10h] 70 76 mov r11, [rbp + 18h] 71 %elifdef RT_ARCH_X86 72 mov eax, [ebp + 08h] 73 mov ebx, [ebp + 0ch] 74 mov ecx, [ebp + 10h] 75 mov edx, [ebp + 14h] 76 mov edi, [ebp + 18h] 77 %elif ARCH_BITS == 32 78 mov eax, [xBP + 08h] 79 mov ebx, [xBP + 0ch] 80 mov ecx, [xBP + 10h] 81 mov edx, [xBP + 14h] 82 mov edi, [xBP + 18h] 83 %elif ARCH_BITS == 16 84 mov eax, [xBP + 08h - 4] 85 mov ebx, [xBP + 0ch - 4] 86 mov ecx, [xBP + 10h - 4] 87 mov edx, [xBP + 14h - 4] 77 88 %else 78 89 %error unsupported arch … … 85 96 jz .store_ebx 86 97 mov [r8], eax 87 %el se98 %elif ARCH_BITS == 32 88 99 test edi, edi 89 100 jz .store_ebx 90 101 mov [edi], eax 102 %else 103 cmp dword [bp + 18h - 4], 0 104 je .store_ebx 105 les di, [bp + 18h - 4] 106 mov [es:di], eax 91 107 %endif 92 108 .store_ebx: … … 96 112 jz .store_ecx 97 113 mov [r9], ebx 98 %el se114 %elif ARCH_BITS == 32 99 115 mov edi, [ebp + 1ch] 100 116 test edi, edi 101 117 jz .store_ecx 102 118 mov [edi], ebx 119 %else 120 cmp dword [bp + 1ch - 4], 0 121 je .store_ecx 122 les di, [bp + 1ch - 4] 123 mov [es:di], ebx 103 124 %endif 104 125 .store_ecx: … … 108 129 jz .store_edx 109 130 mov [r10], ecx 110 %el se131 %elif ARCH_BITS == 32 111 132 mov edi, [ebp + 20h] 112 133 test edi, edi 113 134 jz .store_edx 114 135 mov [edi], ecx 136 %else 137 cmp dword [bp + 20h - 4], 0 138 je .store_edx 139 les di, [bp + 20h - 4] 140 mov [es:di], ecx 115 141 %endif 116 142 .store_edx: … … 120 146 jz .done 121 147 mov [r11], edx 122 %el se148 %elif ARCH_BITS == 32 123 149 mov edi, [ebp + 24h] 124 150 test edi, edi 125 151 jz .done 126 152 mov [edi], edx 153 %else 154 cmp dword [bp + 24h - 4], 0 155 je .done 156 les di, [bp + 24h - 4] 157 mov [es:di], edx 127 158 %endif 128 159 .done: 129 160 130 %if def RT_ARCH_X86161 %if ARCH_BITS == 32 131 162 pop edi 163 %elif ARCH_BITS == 16 164 pop es 165 pop di 132 166 %endif 133 167 pop xBX
Note:
See TracChangeset
for help on using the changeset viewer.