[PATCH] b43-asm, b43-dasm: Add 5 new instructions.

Michael Büsch m at bues.ch
Mon Sep 12 07:19:21 EDT 2011


On Mon, 12 Sep 2011 12:58:52 +0200
francesco.gringoli at ing.unibs.it wrote:

> On Sep 12, 2011, at 12:35 PM, Michael Büsch wrote:
> 
> > On Mon, 12 Sep 2011 12:09:01 +0200
> > francesco.gringoli at 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;

Ok. So the existing signed-compare jumps look at the carry of the subtraction
operation, but the new jdX instructions look at bit 0x8000 of the subtraction
result. (if set -> negative, otherwise positive). jdX ignores the carry.

Did I get it now?

-- 
Greetings, Michael.



More information about the b43-dev mailing list