On Sep 12, 2011, at 12:35 PM, Michael Büsch wrote: > On Mon, 12 Sep 2011 12:09:01 +0200 > francesco.gring...@ing.unibs.it wrote: > >> but trying on a = 0x8000 and b = 0x7fff helped me understanding. a - b = >> 0x8000 + 2'(0x7fff) = 0x0001 > 0. While 0x8000 < 0x7fff. > > I don't get it. > Can you write simple pseudocode for your instruction? Will try for jdn.
> For example, for jls, we have this pseudocode: > > if (xxx < yyy) > pc := jjj > (where xxx and yyy are two's complement) > ** jump if difference is negative 0d6 xxx yyy jjj if ( xxx - yyy < 0 ) pc := jjj C-pseudocode for jdn short c = xxx - yyy; if ( c < 0 ) goto jjj; Pay attention: it's not equivalent to if( xxx - yyy < 0 ) goto jjj; Try this simple code: int main() { short a = 0x8000; short b = 0x7fff; short c = a - b; printf("%d <=> %d\n", a < b, c < 0); } I ' ' think ' ' these instructions are useful and ' ' someone ' ' could use them to check time elapsing in a more efficient way (single instruction rather than a couple. Regards, -Francesco > What does jdX do in C-pseudocode? > > http://bcm-v4.sipsolutions.net/802.11/Microcode > > -- > Greetings, Michael. _______________________________________________ b43-dev mailing list b43-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/b43-dev