- Timestamp:
- Jan 21, 2021 1:20:00 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142312
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMR0A.asm
r87335 r87336 1210 1210 mov rax, [rsp + cbFrame + frm_pVCpu] ; (rbp still not operational) 1211 1211 1212 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.ebx], rbx1213 mov rbx, SPECTRE_FILLER1214 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.ecx], rcx1215 mov rcx, rbx1216 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.edx], rdx1217 mov rdx, rbx1218 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.esi], rsi1219 mov rsi, rbx1220 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.edi], rdi1221 mov rdi, rbx1222 1212 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.ebp], rbp 1223 1213 lea rbp, [rsp + cbFrame] 1214 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.ecx], rcx 1215 mov rcx, SPECTRE_FILLER 1216 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.edx], rdx 1217 mov rdx, rcx 1224 1218 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r8], r8 1225 mov r8, r bx1219 mov r8, rcx 1226 1220 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r9], r9 1227 mov r9, r bx1221 mov r9, rcx 1228 1222 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r10], r10 1229 mov r10, r bx1223 mov r10, rcx 1230 1224 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r11], r11 1231 mov r11, rbx 1225 mov r11, rcx 1226 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.edi], rdi 1227 %ifdef ASM_CALL64_MSC 1228 mov rdi, [rbp + frm_saved_rdi] 1229 %else 1230 mov rdi, rcx 1231 %endif 1232 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.esi], rsi 1233 %ifdef ASM_CALL64_MSC 1234 mov rsi, [rbp + frm_saved_rsi] 1235 %else 1236 mov rsi, rcx 1237 %endif 1238 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.ebx], rbx 1239 mov rbx, [rbp + frm_saved_rbx] 1232 1240 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r12], r12 1233 mov r12, rbx1241 mov r12, [rbp + frm_saved_r12] 1234 1242 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r13], r13 1235 mov r13, rbx1243 mov r13, [rbp + frm_saved_r13] 1236 1244 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r14], r14 1237 mov r14, rbx1245 mov r14, [rbp + frm_saved_r14] 1238 1246 mov qword [rax + VMCPU.cpum.GstCtx + CPUMCTX.r15], r15 1239 mov r15, rbx1247 mov r15, [rbp + frm_saved_r15] 1240 1248 1241 1249 ; Fight spectre. Note! Trashes rax, rdx and rcx! … … 1250 1258 xsetbv ; ecx is already zero 1251 1259 .xcr0_after_skip: 1252 1253 ; Restore host general purpose registers. 1254 POP_CALLEE_PRESERVED_REGISTERS 1255 1260 nop 1261 ; POP_CALLEE_PRESERVED_REGISTERS 1262 ;%if cbFrame != 30h 1263 ; %error Bad cbFrame value 1264 ;%endif 1265 1266 add rsp, cbFrame - 8h 1256 1267 mov eax, VINF_SUCCESS 1257 1258 add rsp, 30h - 8h1259 1268 popf 1260 1269 leave
Note:
See TracChangeset
for help on using the changeset viewer.