Hi misc, the following code snipped is from sys/arch/amd64/stand/libsa/gidt.S
/* pass BIOS return values back to caller */ movl %eax, 0xb*4(%esp) movl %ecx, 0xa*4(%esp) movl %edx, 0x9*4(%esp) movb %bh , 0xe*4(%esp) /* clear NT flag in eflags */ /* Martin Fredriksson <mar...@gbg.netman.se> */ pushf pop %eax and $0xffffbfff, %eax push %eax popf /* save registers into save area */ movl %eax, _C_LABEL(BIOS_regs)+BIOSR_AX movl %ecx, _C_LABEL(BIOS_regs)+BIOSR_CX movl %edx, _C_LABEL(BIOS_regs)+BIOSR_DX movl %ebp, _C_LABEL(BIOS_regs)+BIOSR_BP movl %esi, _C_LABEL(BIOS_regs)+BIOSR_SI movl %edi, _C_LABEL(BIOS_regs)+BIOSR_DI These instructions are being executed after a BIOS interrupt. If i read correctly, than (BIOS_regs)+BIOSR_AX contains the contents of the eflags processor register and not of %eax. Is this intended or should it contain the value of %eax? Kind regards Julius