From: H. P. A. <hp...@zy...> - 2008-03-20 16:48:15
|
Peter Johnson wrote: >> >> However, in 32-bit mode, the two-byte sequence 6A FF will push >> FFFFFFFF on the stack, so "push 0FFFFFFFFh" should silently be >> compressed to a two-byte sequence. > > Yes, exactly. Likewise push 0FFFFFFFFFFFFFFFFh in 64-bit mode should be > encoded as two bytes, but warn and 2-byte encode in 32-bit mode. > > Yasm already correctly warns for the push 0FFFFFFFFh case in 64-bit mode, but > I've not yet optimized its encoding to 2-byte. I have a patch (for Yasm) for > all other optimization cases but this one ready to commit. It's about 10 > added lines of code :). > Well, I have a patch to make NASM do the right thing, except it warns in a few instances it shouldn't. It's becoming clear to me that the lack of a formal automatic test suite is one of the things that is slowing us down most. It makes it hard to see if a change broke something, which of course results in hesitancy to get rid of crap code. -hpa |