diff options
author | jhb <jhb@FreeBSD.org> | 2006-10-05 15:30:51 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-10-05 15:30:51 +0000 |
commit | f576e0540b05ad6f5454b4ef0635061887b0df3e (patch) | |
tree | c0a980f70734e248e0f6b008785916e2cb8f8138 /lib/libc/stdlib/getopt.c | |
parent | ef1fe41dc3c511a8d3f0b53277b4948bf75de62b (diff) | |
download | FreeBSD-src-f576e0540b05ad6f5454b4ef0635061887b0df3e.zip FreeBSD-src-f576e0540b05ad6f5454b4ef0635061887b0df3e.tar.gz |
- 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
Diffstat (limited to 'lib/libc/stdlib/getopt.c')
0 files changed, 0 insertions, 0 deletions