Date: Thu, 5 Oct 2006 15:30:51 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/boot/i386/btx/btx btx.S Message-ID: <200610051530.k95FUpjE005483@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jhb 2006-10-05 15:30:51 UTC FreeBSD src repository Modified files: sys/boot/i386/btx/btx btx.S Log: - Fix a couple of improper uses of leal in the previous space saving commits. For some reason I thought the scale factor was a shift count rather than the multiplicand (that is, I thought leal (%eax,%edx,4) was going to generate %eax + %edx << 4 rather than %eax + %edx * 4). What I need is to multiply by 16 to convert a real-mode (seg, offset) tuple into a flat address. However, the max multiplicand for scaled/index addressing on i386 is 8, so go back to using a shl and an add. - Convert two more inter-register mov instructions where we don't need to preserve the source register to xchg instructions to keep our space savings. Tested by: Ian FREISLICH if at hetzner.co.za MFC after: 1 week Revision Changes Path 1.43 +7 -5 src/sys/boot/i386/btx/btx/btx.S
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610051530.k95FUpjE005483>