All for one cycle

Alan Modra (alan@spri.levels.unisa.edu.au)
Thu, 9 Apr 1998 23:45:16 +0930 (CST)


I've been hacking away at the i386 assembler, and have reached the
stage where I think my patches are ready for public testing. Are
there any Intel assembly experts out there who'd like to pick holes in
what I've done? I'd especially like to find out about any valid
assembly code that is rejected. I'll also attempt to tighten the
operand checking if gas still accepts silly instructions, but I
*won't* try to turn gas into a 16 bit assembler.

The patches are against gas-980407, and should apply without any
problems to binutils-2.9 when that comes out soon. The URLs are
ftp://mullet.levels.unisa.edu.au/private/teabag/gas-980407-alan.diff.gz
for my patch, with the gas sources at
ftp://ftp.cygnus.com/private/gas/gas-980407.tar.gz

Here's a sample of some instructions that previously were accepted,
but now give an error.

popab
stil
aaab
cwdel
cwdw
callww 0
div %ecx,%al
imul 10,%bx,%ecx
imul 10,%bx,%al
foo: jaw foo
jcxzw foo
jecxzl foo
loopl foo
xlatw %ds:%bx
xlatl %es:%cs:%fs:%esp
movsl dum,de,dum de dum
intl 2
int3b
hltb
fstb %st(0)
fcompll 28(%ebp)
fldlw (%eax)

All this started because Ingo Molnar wanted to save one cycle on
syscalls, using a gross `movb %dx,%ds' hack. I must be crazy.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu