[lkml]   [1999]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[RFC] arch/i386/boot: as86->gas, for 2.3.x

i386 kernel, boot assembly code rewrite
- -- --- -- ----- - --- -- --- ----- --
last updated [Thu Mar 25 14:11:33 1999]

I was pretty bored one lonely day, and decided to brush up on my assembly
knowledge by taking all of the Intel syntax i386 assembly, and rewriting
it in AT&T (gas friendly) syntax.

Pointless? Naw! Here are a few good things that came out of it:

o The kernel is no longer dependent on as86/ld86. Wonderful!

o Personally, I find AT&T style much more readable, not to
mention that this is the *only* part of the kernel still using

o build.c is a bit smaller since it doesn't have to mess
with minix style (aka ld86) output.

o It's a patch that removes/tidies up code!
Everybody loves those.

Files touched:
(up to date as of kernel v2.2.4)

1) Ask maintainers if it was alright for me to slash through their
code like this. :)

2) There are still few minor bugs in gas' 16-bit code, so I had to
hard-code one troublesome instruction. (Clearly marked in video.S)
(maybe fixed in latest binutils? Haven't tested yet, will do ASAP)

3) I have no idea how to properly tell the linker where to find
bootsect_kludge (in setup.S) from bootsect.S (line 245), so I just
hacked the makefile to do "--defsym bootsect_kludge=0x220" since the
offset into setup where bootsect_kludge should hide is always going to
be 0x20. There's got to be a cleaner way, right? Somebody tell me how.

4) Fix wrapped comments.

I had basically finished this last summer, but didn't want to even try and
squeeze it into those last few 2.1's. Even if it wasn't the 'right' thing
to do, I learned a bunch from it.. so don't be afraid to shoot me down (or
talk me up, whichever the case may be). :)

And of course this is planned for 2.3, I'm just looking for feedback

Comments please!
(Martin, Linus, cc'ed because you appear to be the current maintainers)

Chris Noe

#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
---- -----

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:51    [W:0.032 / U:2.224 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site