I have a strange problem with the tools. I've searched the
documentation to no avail. When I assemble the output from the
compiled source files, I get the error "ERROR --- Instruction cannot
appear immediately after control register access or an ENDDO (Opcode
field)". This error refers to the following code snippet where the
given line number is the "rts" instruction at the end of the function:
move (r6)-
move y:(r6)-,r7
move y:(r6)-,r2
move y:(r6),y0
move y:-(r6),ssh
rts
By inserting a "nop" between the last "move" and the "rts", the
assembly error goes away. As this file has five instances of this so
that every time I recompile, I have to go in and edit the resulting
asm file.
The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
The assembler line is: "asm56300 -b -l Comm.asm"
Thanks alot for your help! Rob.
56303 C Compiler
Started by ●June 25, 2007
Reply by ●June 26, 20072007-06-26
Motorola DSPs in the past have had issues like this, which are "pipeline"
issues--some instructions cannot be put after certain other
instructions.Usually, this doesn't cause problems. Emailing Freescale tech
support may get you an answer.
Rob Tonneberger wrote: I have a strange problem with the tools. I've searched the
documentation to no avail. When I assemble the output from the
compiled source files, I get the error "ERROR --- Instruction cannot
appear immediately after control register access or an ENDDO (Opcode
field)". This error refers to the following code snippet where the
given line number is the "rts" instruction at the end of the function:
move (r6)-
move y:(r6)-,r7
move y:(r6)-,r2
move y:(r6),y0
move y:-(r6),ssh
rts
By inserting a "nop" between the last "move" and the "rts", the
assembly error goes away. As this file has five instances of this so
that every time I recompile, I have to go in and edit the resulting
asm file.
The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
The assembler line is: "asm56300 -b -l Comm.asm"
Thanks alot for your help! Rob.
Rob Tonneberger wrote: I have a strange problem with the tools. I've searched the
documentation to no avail. When I assemble the output from the
compiled source files, I get the error "ERROR --- Instruction cannot
appear immediately after control register access or an ENDDO (Opcode
field)". This error refers to the following code snippet where the
given line number is the "rts" instruction at the end of the function:
move (r6)-
move y:(r6)-,r7
move y:(r6)-,r2
move y:(r6),y0
move y:-(r6),ssh
rts
By inserting a "nop" between the last "move" and the "rts", the
assembly error goes away. As this file has five instances of this so
that every time I recompile, I have to go in and edit the resulting
asm file.
The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
The assembler line is: "asm56300 -b -l Comm.asm"
Thanks alot for your help! Rob.
Reply by ●July 2, 20072007-07-02
Think the easiest is to change the emitted code in the sources of the
compiler.
Stefan
Rob Tonneberger wrote:
> I have a strange problem with the tools. I've searched the
> documentation to no avail. When I assemble the output from the
> compiled source files, I get the error "ERROR --- Instruction cannot
> appear immediately after control register access or an ENDDO (Opcode
> field)". This error refers to the following code snippet where the
> given line number is the "rts" instruction at the end of the function:
> move (r6)-
> move y:(r6)-,r7
> move y:(r6)-,r2
> move y:(r6),y0
> move y:-(r6),ssh
> rts
> By inserting a "nop" between the last "move" and the "rts", the
> assembly error goes away. As this file has five instances of this so
> that every time I recompile, I have to go in and edit the resulting
> asm file.
> The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
> The assembler line is: "asm56300 -b -l Comm.asm"
> Thanks alot for your help! Rob.
Stefan
Rob Tonneberger wrote:
> I have a strange problem with the tools. I've searched the
> documentation to no avail. When I assemble the output from the
> compiled source files, I get the error "ERROR --- Instruction cannot
> appear immediately after control register access or an ENDDO (Opcode
> field)". This error refers to the following code snippet where the
> given line number is the "rts" instruction at the end of the function:
> move (r6)-
> move y:(r6)-,r7
> move y:(r6)-,r2
> move y:(r6),y0
> move y:-(r6),ssh
> rts
> By inserting a "nop" between the last "move" and the "rts", the
> assembly error goes away. As this file has five instances of this so
> that every time I recompile, I have to go in and edit the resulting
> asm file.
> The compiler invocation line is: "g563c -g -S Comm.c -o Comm.asm"
> The assembler line is: "asm56300 -b -l Comm.asm"
> Thanks alot for your help! Rob.