Yes, it says the squaring operation is valid on 2181 (ie: not 2100 type)
Page 15-41 of ADSP-2100 Family User's Manual. pop cntr may be needed
too.
Tom Hartnett wrote: >
> The sqare command *is* valid on the newer processors. It's not really
clear
> whether is can be used in a multifunction statement though. My suspicion
is
> that it can't and ADI forget to mention it.
>
> > > Q1 - My assembler is telling me that the following instruction is
an
> illegal
> > > multifunction
> > > but I can't see anything wrong, and the processor manual
implies that it
> > > should be possible
> > >
> > > MR = MR + MX0 * MX0 (SS), MX0 = DM(I0, M1);
> > >
> > > Any comments ?
> >
> > Can't do MX0*MX0, because that's two Xops. Need something
like MX0*MY0.
> >
Ian wrote: >
> Q1 - My assembler is telling me that the following instruction is an
illegal
> multifunction
> but I can't see anything wrong, and the processor manual implies that
it
> should be possible
>
> MR = MR + MX0 * MX0 (SS), MX0 = DM(I0, M1);
>
> Any comments ?
Can't do MX0*MX0, because that's two Xops. Need something like
MX0*MY0.
>
> Q2 - I have a loop construct of the following form
>
> CNTR = 15;
> DO loop UNTIL CE;
> xxxxxx;
> IF NOT CE JUMP DecCntr;
> JUMP Quit2;
>
> DecCntr: xxxxxx;
> xxxxxx; loop: nop; >
> Quit1: {a normal loop exit}
> RTS;
>
> Quit2: {alternative loop exit} POP PC, POP LOOP; > RTS;
>
> Where xxxx indicate irrelevant code in this example.
>
> The question is what POPs (if any) should occur at the Quit2 point ?
> The processor manual is a bit vague on what gets POPed by IF NOT CE when
it
> does not jump.
> I have assumed that the Quit2 line should execute
a POP PC, POP LOOP;
> instruction which seems to work ok.
Q1 - My assembler is telling me that the following instruction is an
illegal
multifunction
but I can't see anything wrong, and the processor manual implies that it
should be possible
MR = MR + MX0 * MX0 (SS), MX0 = DM(I0, M1);
Any comments ?
Q2 - I have a loop construct of the following form
CNTR = 15;
DO loop UNTIL CE;
xxxxxx;
IF NOT CE JUMP DecCntr;
JUMP Quit2;
DecCntr: xxxxxx;
xxxxxx;
loop: xxxxxx;
Quit1: {a normal loop exit}
RTS;
Quit2: {alternative loop exit}
RTS;
Where xxxx indicate irrelevant code in this example.
The question is what POPs (if any) should occur at the Quit2 point ?
The processor manual is a bit vague on what gets POPed by IF NOT CE when it
does not jump.
I have assumed that the Quit2 line should execute a POP PC, POP LOOP;
instruction
which seems to work ok.