On Sep 12, 2011, at 12:35 PM, Michael Büsch wrote:
> On Mon, 12 Sep 2011 12:09:01 +0200
> [email protected] 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
[email protected]
http://lists.infradead.org/mailman/listinfo/b43-dev