svn commit: r185780 - head/sys/boot/i386/btx/btxldr
Maxim Sobolev
sobomax at FreeBSD.org
Mon Dec 8 15:45:42 PST 2008
Author: sobomax
Date: Mon Dec 8 23:45:41 2008
New Revision: 185780
URL: http://svn.freebsd.org/changeset/base/185780
Log:
Optimiza assembly in the previous r185779, to save whooping 16 bytes.
Submitted by: Christoph Mallon
MFC after: 4 weeks
(including r185779)
Modified:
head/sys/boot/i386/btx/btxldr/btxldr.S
Modified: head/sys/boot/i386/btx/btxldr/btxldr.S
==============================================================================
--- head/sys/boot/i386/btx/btxldr/btxldr.S Mon Dec 8 21:52:06 2008 (r185779)
+++ head/sys/boot/i386/btx/btxldr/btxldr.S Mon Dec 8 23:45:41 2008 (r185780)
@@ -67,11 +67,8 @@
* BTX program loader for ELF clients.
*/
start: cld # String ops inc
- leal 0x4(%esp,1),%ebx # First argument
- testl $OPT_SET(RBX_MUTE),(%ebx) # check for RBX_MUTE
- jz nomute
- movb $1,muted
-nomute:
+ testl $OPT_SET(RBX_MUTE), 4(%esp) # Check first argument
+ setnz muted # for RBX_MUTE, set flag
movl $m_logo,%esi # Identify
call putstr # ourselves
movzwl BDA_MEM,%eax # Get base memory
@@ -296,9 +293,8 @@ putstr: lodsb # Load char
/*
* Output character AL to the console.
*/
-putchr: testb $1,muted
- jz putchr_nm
- ret
+putchr: testb $1,muted # Check muted
+ jnz putchr.5 # do a nop
putchr_nm: pusha # Save
xorl %ecx,%ecx # Zero for loops
movb $SCR_MAT,%ah # Mode/attribute
@@ -336,7 +332,7 @@ putchr.3: cmpb $SCR_ROW,%dh # Beyond sc
movb $SCR_ROW-1,%dh # Bottom line
putchr.4: movw %dx,(%ebx) # Update position
popa # Restore
- ret # To caller
+putchr.5: ret # To caller
/*
* Convert EAX, AX, or AL to hex, saving the result to [EDI].
*/
More information about the svn-src-all
mailing list