Re: Assembler messages

Chris Noe (stiker@northlink.com)
Wed, 17 Nov 1999 17:54:10 -0500 (EST)


On Wed, 17 Nov 1999, Chris Funderburg wrote:

> Hello all.
>
> Every time, near the end of the kernel compile, I get lots of messages
> like these:
>
> /tmp/ccOQyv5i.s:1213: Warning: using `%eax' instead of `%ax' due to `l'
> suffix
> bsetup.s: Assembler messages:
> bsetup.s:1165: Warning: using `%bx' instead of `%ebx' due to `w' suffix
> bsetup.s:1165: Warning: using `%bx' instead of `%ebx' due to `w' suffix
> /tmp/cc1VZ3q5.s: Assembler messages:
> /tmp/cc1VZ3q5.s:117: Warning: using `%eax' instead of `%ax' due to `l'
> suffix
>
> It still boots and everything 'seems' alright, but what does this
> actually mean? The latest kernel (2.3.28) does it and it's been
> happening for several releases now. Sorry, I forget when it started.
>
>
> ld -v
> GNU ld version 2.9.5 (with BFD 2.9.5.0.19)
>
> gcc -v
> Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/specs
> gcc version 2.95.2 19991024 (release)

Just as the assembler warns, we are telling it to use a word sized xor
(a word = 16 bits), but we are giving it %ebx as an operand (which is a 32
bit register). The assembler picks this up and fixes it to use the proper
16 bit reg (%bx).

Here's the patch to do it, it was obviously a typo.

Chris Noe
(stiker@northlink.com)

--- setup.S Sun Nov 14 12:06:32 1999
+++ setup.S.new Wed Nov 17 17:51:20 1999
@@ -456,7 +456,7 @@
xorw %bx, %bx
int $0x15 # ignore return code
movw $0x05303, %ax # 32 bit connect
- xorw %ebx, %ebx
+ xorw %bx, %bx
int $0x15
jc no_32_apm_bios # Ack, error.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/