Reply by strohs56k January 30, 20062006-01-30
--- In motoroladsp@moto..., "gusflit" <gusflit@y...> wrote:
>
> It seems to me that there are now restrictions on parallel move that
> didn't exist with previous versions of that assembler.
> For example,
> "mac x0,x1,a x:(r0)+,y0 y:(r1)+,y1" is now rejected.
> Indeed the new assembler seems only to allow now one move per
> instruction line.

For an arithmetic operation with two parallel moves you need to use
the independent register banks. The registers are grouped as
(r0-r3/n0-n3/m0-m3/x0/x1) and (r4-r7/n4-n7/m4-m7/y0/y1) So, in your
example, you want to do something like this:

mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0

this instruction will run as a single cycle so, for example, you can
do a "rep #n" for an "n" point FIR, etc.

seth



Reply by Stefan Stenzel January 30, 20062006-01-30
Hello,

The Assembler 6.3.22 is fine, your code is indeed faulty:

> "mac x0,x1,a x:(r0)+,y0 y:(r1)+,y1" is now rejected.

For parallel moves, you must select a pair of address registers
of opposite banks, eg you must combine any of (r0/r1/r2/r3) with
any of (r4/r5/r6/r7).

In addition, your dual move source/destinations must match the
program space :

a/b/x0/x1 to/from x:memory
a/b/y0/y1 to/from y:memory

So rewrite your code that it looks similar to this:

mac x0,x1,a x:(r0)+,x0 y:(r4)+,y1

And the assembler will stop complaining.

Stefan


Reply by Estevam Fabio-R49496 January 30, 20062006-01-30
Gustave,

There are some restrictions regarding parallel move. You can not make parallel move using R0 and R1 at the same time.

You can try the following:
mac x0,x1,a x:(r0)+,y0 y:(r4)+,y1

Best regards,

Fabio Estevam

-----Original Message-----
From: motoroladsp@moto... [mailto:motoroladsp@moto...] On Behalf Of gusflit
Sent: domingo, 29 de janeiro de 2006 17:55
To: motoroladsp@moto...
Subject: [motoroladsp] DSP56300 assembler changes Hi to all!

I had to start recently a new project targetting the DSP56300 family,
and therefor downloaded the last revision available for Suite56. The package came with the newest assembler version 6.3.22

It seems to me that there are now restrictions on parallel move that
didn't exist with previous versions of that assembler.
For example,
"mac x0,x1,a x:(r0)+,y0 y:(r1)+,y1" is now rejected.
Indeed the new assembler seems only to allow now one move per
instruction line.

Anyone noticed such a behaviour? Should i stick to this new version, or
get a previous one?

Thanks for your help!

Gustave



Reply by gusflit January 29, 20062006-01-29
Hi to all!

I had to start recently a new project targetting the DSP56300 family,
and therefor downloaded the last revision available for Suite56.
The package came with the newest assembler version 6.3.22

It seems to me that there are now restrictions on parallel move that
didn't exist with previous versions of that assembler.
For example,
"mac x0,x1,a x:(r0)+,y0 y:(r1)+,y1" is now rejected.
Indeed the new assembler seems only to allow now one move per
instruction line.

Anyone noticed such a behaviour? Should i stick to this new version, or
get a previous one?

Thanks for your help!

Gustave