On Wed, Jan 15, 2014 at 10:24:41PM +0000, Joerg Sonnenberger wrote:
> Module Name:  src
> Committed By: joerg
> Date:         Wed Jan 15 22:24:41 UTC 2014
> 
> Modified Files:
>       src/sys/arch/amd64/acpi: acpi_wakecode.S
>       src/sys/arch/amd64/amd64: mptramp.S
>       src/sys/arch/i386/i386: mptramp.S
> 
> Log Message:
> LLVM doesn't support data32/addr32, but is smart enough to figure the
> necessary prefixes out.

What justification does LLVM have for instering the prefixes
inside a .code16 section?
        data32 addr32 lgdt    (gdt_desc)
Nothing tells if the format of the descriptor - and it changes
between true 16bit mode and 32bit mode (which we want).

I'm not sure the addr32 is needed - since it is the operand size
that controls whether a 24 or 32 bit base is loaded.

I've certainly used lidt in real mode just to move the vector
table to a safe address (the 286 ice didn't like it).

        David

-- 
David Laight: da...@l8s.co.uk

Reply via email to