Index: sys/boot/i386/btx/btxldr/btxldr.S =================================================================== --- sys/boot/i386/btx/btxldr/btxldr.S +++ sys/boot/i386/btx/btxldr/btxldr.S @@ -198,10 +198,9 @@ call putstr # message movl $m_segs,%esi # Format string #endif - movl $0x2,%edi # Segment count movl 0x1c(%ebx),%edx # Get e_phoff addl %ebx,%edx # To pointer - movzwl 0x2c(%ebx),%ecx # Get e_phnum + movzwl 0x2c(%ebx),%edi # Get e_phnum start.4: cmpl $0x1,(%edx) # Is p_type PT_LOAD? jne start.6 # No #ifdef BTXLDR_VERBOSE @@ -234,9 +233,9 @@ start.5: popl %ecx # Restore popl %edi # working popl %esi # registers - decl %edi # Segments to do +start.6: decl %edi # Segments to do je start.7 # If none -start.6: addl $0x20,%edx # To next entry + addl $0x20,%edx # To next entry loop start.4 # Till done start.7: #ifdef BTXLDR_VERBOSE