From 6bbe7ef049bc1b9d150a21ccd082c2f65f344682 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 20 Feb 2025 13:12:27 -0500 Subject: kernel/amd64: i8237: Optimize set channel select There is no need for an intermediary register before setting %AL. This commit removes redundant instructions to reduce the amount of cycles used for this operation. Signed-off-by: Ian Moffett --- sys/arch/amd64/isa/i8237.S | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sys/arch/amd64/isa') diff --git a/sys/arch/amd64/isa/i8237.S b/sys/arch/amd64/isa/i8237.S index 00b5bd9..ef6090a 100644 --- a/sys/arch/amd64/isa/i8237.S +++ b/sys/arch/amd64/isa/i8237.S @@ -95,9 +95,8 @@ i8237_set_mode: jg 1f /* Set channel select bits */ - mov %dil, %bl - andb $3, %bl - mov %bl, %al + mov %dil, %al + andb $3, %al /* Set channel mode bits */ mov %sil, %dl -- cgit v1.2.3 From 89b144a8916305fc010ba883013dbfb1f98a9d91 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 20 Feb 2025 13:24:18 -0500 Subject: kernel/amd64: i8237: Use word register for mode Signed-off-by: Ian Moffett --- sys/arch/amd64/isa/i8237.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sys/arch/amd64/isa') diff --git a/sys/arch/amd64/isa/i8237.S b/sys/arch/amd64/isa/i8237.S index ef6090a..9c952f7 100644 --- a/sys/arch/amd64/isa/i8237.S +++ b/sys/arch/amd64/isa/i8237.S @@ -99,9 +99,9 @@ i8237_set_mode: andb $3, %al /* Set channel mode bits */ - mov %sil, %dl - shlb $2, %dl - or %dl, %al + mov %si, %bx + shlw $2, %bx + or %bl, %al /* Write the mode then we are done */ outb %al, $0x0B -- cgit v1.2.3