[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