Skip to content

Commit 7c1dce3

Browse files
authored
Merge pull request #921 from rianquinn/upstream_master
Bug fixes for Boxy
2 parents 2cf4594 + deadf6d commit 7c1dce3

File tree

4 files changed

+11
-111
lines changed

4 files changed

+11
-111
lines changed

bfdriver/src/platform/linux/intrinsics.S

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ _vmcall:
4141

4242
pop rbx
4343
ret
44+
.size _vmcall, .-_vmcall

bfintrinsics/src/arch/intel_x64/vmx.asm

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff 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

bfvmm/include/test/intrinsics.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ intel_x64::cr2::value_type g_cr2 = 0;
238238
intel_x64::cr3::value_type g_cr3 = 0;
239239
intel_x64::cr4::value_type g_cr4 = 0;
240240
intel_x64::cr8::value_type g_cr8 = 0;
241+
intel_x64::xcr0::value_type g_xcr0 = 0;
241242
intel_x64::dr7::value_type g_dr7 = 0;
242243

243244
bool 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+
271276
extern "C" void
272277
_write_cr0(uint64_t val) noexcept
273278
{ g_cr0 = val; }
@@ -296,7 +301,7 @@ _write_cr8(uint64_t val) noexcept
296301

297302
extern "C" void
298303
_write_xcr0(uint64_t val) noexcept
299-
{ bfignored(val); }
304+
{ g_xcr0 = val; }
300305

301306
extern "C" uint64_t
302307
_read_dr7() noexcept

scripts/cmake/config/example_config.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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()
145149
endif()
146150

147151
if(OVERRIDE_VMM)

0 commit comments

Comments
 (0)