Bootloader: Optimize some unnecessary branches on carry add/sub
This commit is contained in:
parent
2a68df81e2
commit
7356a83a44
|
@ -389,10 +389,8 @@ find_root_partition:
|
||||||
|
|
||||||
# increment 8 byte entry array lba
|
# increment 8 byte entry array lba
|
||||||
incl 0(%esp)
|
incl 0(%esp)
|
||||||
jnc .find_root_partition_no_overflow
|
adcl $0, 4(%esp)
|
||||||
incl 4(%esp)
|
|
||||||
|
|
||||||
.find_root_partition_no_overflow:
|
|
||||||
# loop to read next section if entries remaining
|
# loop to read next section if entries remaining
|
||||||
cmpl $0, 12(%esp)
|
cmpl $0, 12(%esp)
|
||||||
jnz .find_root_partition_read_entry_section
|
jnz .find_root_partition_read_entry_section
|
||||||
|
@ -416,12 +414,10 @@ find_root_partition:
|
||||||
|
|
||||||
# ebx:eax -= first lba - 1
|
# ebx:eax -= first lba - 1
|
||||||
subl (root_partition_entry + 36), %ebx
|
subl (root_partition_entry + 36), %ebx
|
||||||
movl (root_partition_entry + 32), %ecx;
|
movl (root_partition_entry + 32), %ecx
|
||||||
decl %ecx
|
decl %ecx
|
||||||
subl %ecx, %eax
|
subl %ecx, %eax
|
||||||
jnc .find_root_partition_count_sub_no_carry
|
sbbl $0, %ebx
|
||||||
decl %ebx
|
|
||||||
.find_root_partition_count_sub_no_carry:
|
|
||||||
|
|
||||||
# ecx: min(partition count, 0xFFFFFFFF)
|
# ecx: min(partition count, 0xFFFFFFFF)
|
||||||
movl $0xFFFFFFFF, %edx
|
movl $0xFFFFFFFF, %edx
|
||||||
|
|
|
@ -95,8 +95,7 @@ vesa_find_video_mode:
|
||||||
cmpw $0x0200, (vesa_info_buffer + 0x04)
|
cmpw $0x0200, (vesa_info_buffer + 0x04)
|
||||||
jb .vesa_unsupported_version
|
jb .vesa_unsupported_version
|
||||||
|
|
||||||
movl $(vesa_info_buffer + 0x0E), %esi
|
movl (vesa_info_buffer + 0x0E), %esi
|
||||||
movl (%esi), %esi
|
|
||||||
.vesa_find_video_mode_loop_modes:
|
.vesa_find_video_mode_loop_modes:
|
||||||
cmpw $0xFFFF, (%esi)
|
cmpw $0xFFFF, (%esi)
|
||||||
je .vesa_find_video_mode_loop_modes_done
|
je .vesa_find_video_mode_loop_modes_done
|
||||||
|
|
Loading…
Reference in New Issue