From 7356a83a44fb0afa9e17cd09d62699df82799282 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 3 Jan 2024 17:05:33 +0200 Subject: [PATCH] Bootloader: Optimize some unnecessary branches on carry add/sub --- bootloader/bios/disk.S | 10 +++------- bootloader/bios/framebuffer.S | 3 +-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/bootloader/bios/disk.S b/bootloader/bios/disk.S index bdba2cba..1b49c4d4 100644 --- a/bootloader/bios/disk.S +++ b/bootloader/bios/disk.S @@ -389,10 +389,8 @@ find_root_partition: # increment 8 byte entry array lba incl 0(%esp) - jnc .find_root_partition_no_overflow - incl 4(%esp) + adcl $0, 4(%esp) - .find_root_partition_no_overflow: # loop to read next section if entries remaining cmpl $0, 12(%esp) jnz .find_root_partition_read_entry_section @@ -416,12 +414,10 @@ find_root_partition: # ebx:eax -= first lba - 1 subl (root_partition_entry + 36), %ebx - movl (root_partition_entry + 32), %ecx; + movl (root_partition_entry + 32), %ecx decl %ecx subl %ecx, %eax - jnc .find_root_partition_count_sub_no_carry - decl %ebx - .find_root_partition_count_sub_no_carry: + sbbl $0, %ebx # ecx: min(partition count, 0xFFFFFFFF) movl $0xFFFFFFFF, %edx diff --git a/bootloader/bios/framebuffer.S b/bootloader/bios/framebuffer.S index ad2fbe8c..3ff46c0f 100644 --- a/bootloader/bios/framebuffer.S +++ b/bootloader/bios/framebuffer.S @@ -95,8 +95,7 @@ vesa_find_video_mode: cmpw $0x0200, (vesa_info_buffer + 0x04) jb .vesa_unsupported_version - movl $(vesa_info_buffer + 0x0E), %esi - movl (%esi), %esi + movl (vesa_info_buffer + 0x0E), %esi .vesa_find_video_mode_loop_modes: cmpw $0xFFFF, (%esi) je .vesa_find_video_mode_loop_modes_done