File tree Expand file tree Collapse file tree 4 files changed +11
-111
lines changed
bfdriver/src/platform/linux
bfintrinsics/src/arch/intel_x64 Expand file tree Collapse file tree 4 files changed +11
-111
lines changed Original file line number Diff line number Diff line change @@ -41,3 +41,4 @@ _vmcall:
4141
4242 pop rbx
4343 ret
44+ .size _vmcall , . - _vmcall
Original file line number Diff line number Diff line change @@ -150,113 +150,3 @@ _vmcall:
150150
151151 pop rbx
152152 ret
153-
154- global _vmcall1
155- _vmcall1:
156-
157- push rbx
158-
159- %ifdef MS64
160- mov r8 , rcx
161- %else
162- mov r8 , rdi
163- %endif
164-
165- mov rax , [ r8 ]
166- mov rbx , 0
167- mov rcx , 0
168- mov rdx , 0
169-
170- vmcall
171-
172- mov [ r8 ], rax
173-
174- pop rbx
175- ret
176-
177- global _vmcall2
178- _vmcall2:
179-
180- push rbx
181-
182- %ifdef MS64
183- mov r8 , rcx
184- mov r9 , rdx
185- %else
186- mov r8 , rdi
187- mov r9 , rsi
188- %endif
189-
190- mov rax , [ r8 ]
191- mov rbx , [ r9 ]
192- mov rcx , 0
193- mov rdx , 0
194-
195- vmcall
196-
197- mov [ r8 ], rax
198- mov [ r9 ], rbx
199-
200- pop rbx
201- ret
202-
203- global _vmcall3
204- _vmcall3:
205-
206- push rbx
207-
208- %ifdef MS64
209- mov r10 , r8
210- mov r8 , rcx
211- mov r9 , rdx
212- %else
213- mov r8 , rdi
214- mov r9 , rsi
215- mov r10 , rdx
216- %endif
217-
218- mov rax , [ r8 ]
219- mov rbx , [ r9 ]
220- mov rcx , [ r10 ]
221- mov rdx , 0
222-
223- vmcall
224-
225- mov [ r8 ], rax
226- mov [ r9 ], rbx
227- mov [ r10 ], rcx
228-
229- pop rbx
230- ret
231-
232- global _vmcall4
233- _vmcall4:
234-
235- push rbx
236-
237- %ifdef MS64
238- mov r10 , r8
239- mov r11 , r9
240- mov r8 , rcx
241- mov r9 , rdx
242- %else
243- mov r8 , rdi
244- mov r9 , rsi
245- mov r10 , rdx
246- mov r11 , rcx
247- %endif
248-
249- mov rax , [ r8 ]
250- mov rbx , [ r9 ]
251- mov rcx , [ r10 ]
252- mov rdx , [ r11 ]
253-
254- vmcall
255-
256- mov [ r8 ], rax
257- mov [ r9 ], rbx
258- mov [ r10 ], rcx
259- mov [ r11 ], rdx
260-
261- pop rbx
262- ret
Original file line number Diff line number Diff line change @@ -238,6 +238,7 @@ intel_x64::cr2::value_type g_cr2 = 0;
238238intel_x64::cr3::value_type g_cr3 = 0 ;
239239intel_x64::cr4::value_type g_cr4 = 0 ;
240240intel_x64::cr8::value_type g_cr8 = 0 ;
241+ intel_x64::xcr0::value_type g_xcr0 = 0 ;
241242intel_x64::dr7::value_type g_dr7 = 0 ;
242243
243244bool g_vmload_fails = false ;
@@ -268,6 +269,10 @@ extern "C" uint64_t
268269_read_cr8 (void ) noexcept
269270{ return g_cr8; }
270271
272+ extern " C" uint64_t
273+ _read_xcr0 (void ) noexcept
274+ { return g_xcr0; }
275+
271276extern " C" void
272277_write_cr0 (uint64_t val) noexcept
273278{ g_cr0 = val; }
@@ -296,7 +301,7 @@ _write_cr8(uint64_t val) noexcept
296301
297302extern " C" void
298303_write_xcr0 (uint64_t val) noexcept
299- { bfignored ( val) ; }
304+ { g_xcr0 = val; }
300305
301306extern " C" uint64_t
302307_read_dr7 () noexcept
Original file line number Diff line number Diff line change @@ -142,6 +142,10 @@ if(ENABLE_BOXY)
142142 list (APPEND EXTENSION
143143 ${CMAKE_CURRENT_LIST_DIR} /boxy
144144 )
145+
146+ if (EXISTS ${CMAKE_CURRENT_LIST_DIR} /linux)
147+ set (LINUX_DIR ${CMAKE_CURRENT_LIST_DIR} /linux)
148+ endif ()
145149endif ()
146150
147151if (OVERRIDE_VMM)
You can’t perform that action at this time.
0 commit comments