Messages in this thread | | | From | Andrzej Krzysztofowicz <> | Subject | Re: bootsect.S changes | Date | Fri, 15 Oct 1999 16:44:16 +0200 (CEST) |
| |
> On Fri, 15 Oct 1999, Andrzej Krzysztofowicz wrote: > > What are the advantages of the following code: > > movw $128, %cx > > subw %si, %si > > subw %di, %di > > cld > > rep > > movsl <------- 32 bit > > instead of > > movw $256, %cx > > subw %si, %si > > subw %di, %di > > cld > > rep > > movsw <------- 16 bit > > You bring up a good point, but it's only the tip of the iceburg. > The boot code was changed to use GAS rather than AS86 assembler. I > don't know why. However, the resulting code is in may cases plain
I think the reason: to use only one tool is clean.
> wrong. I thought I would wait until somebody fixed GAS before I > looked at this stuff, but there is a problem requiring immediate > attention. The problem is that there doesn't seem to be any way > to tell GAS to assemble 16-bit, rather than 32-bit instructions.
However, if the GAS is so buggy while handling 16-bit code it was not, IMHO, the right moment to do as86->GAS conversion.
> It is _not_ just putting 'w' or 'l' after an instruction. To explain, > If I assemble code in 16-bit mode: > mov ax,bx ; Intel > byte sequence is 0x89, 0xd8
It seems to be correct.
> If I am in 16-bit mode and want to assemble: > mov eax,ebx ; Intel > byte sequence is 0x66, 0x89, 0xd8
It also seems to be correct.
> If I am in 32-bit mode and want to assemble: > mov eax,ebx ; Intel > byte sequence is 0x89, 0xd8 -- just like the 16-bit mov ax,bx
Does it mean that GAS has problems in 32-bit mode ?
> What has happened is that it looks as though source code was 'tweaked` > to get the correct binary from GAS. This makes the source-code wrong.
Does this problem appear in all versions of GAS (binutils) or has already been corrected ?
-- ======================================================================= Andrzej M. Krzysztofowicz ankry@mif.pg.gda.pl phone (48)(58) 347 14 61 Faculty of Applied Phys. & Math., Technical University of Gdansk
- 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/
| |