From 70119785be37da055ce66bc06430ee875f8051c0 Mon Sep 17 00:00:00 2001 From: Daniel Victor Date: Tue, 11 Nov 2025 12:27:47 -0300 Subject: [PATCH] [FREELDR] Do some MSVC fixes (#8454) Ensure using the correct data segment in the lgdt/lidt invocation. Also simplify the MASM/ML vs. gas syntax by using `lXdtPrefix`. Fixes x86 MSVC FreeLoader boot following commit 9decadee83. --- boot/freeldr/freeldr/arch/realmode/i386.S | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/boot/freeldr/freeldr/arch/realmode/i386.S b/boot/freeldr/freeldr/arch/realmode/i386.S index fdac4e52932..2accf63ce52 100644 --- a/boot/freeldr/freeldr/arch/realmode/i386.S +++ b/boot/freeldr/freeldr/arch/realmode/i386.S @@ -95,11 +95,7 @@ inrmode: mov sp, word ptr ds:[stack16] /* Load IDTR with real mode value */ -#ifdef _USE_ML - lidt fword ptr rmode_idtptr -#else - lidt rmode_idtptr -#endif + lidt lXdtPrefix ds:[rmode_idtptr] sti /* These are ok now */ @@ -120,11 +116,7 @@ exit_to_protected: mov word ptr ds:[stack16], sp /* Load the GDT */ -#ifdef _USE_ML - lgdt fword ptr gdtptr -#else - lgdt gdtptr -#endif + lgdt lXdtPrefix ds:[gdtptr] /* Enable Protected Mode */ mov eax, cr0