WA_02000014 on 21160

Hy,

When i compile my code (in C) with VDSP 5.0 update 3 we use the worckaround  rframe commande, the RFRAME instruction is replaced by i7=i6; i6=dm(0,I6).

but today i use VDSP 5.0 update 8 with the same commande but the RFRAME instruction is replaced by  i6=dm(0,i6); modify (i7,0xX); with X variant.

on include asm_sprt.h normaly is always :

#ifdef __ADSP21160__
/* On 2116x, it's not safe to assign to a DAG register then use it in the
 * the next instruction.
 */
#  define leaf_exit      i12=dm(m7,i6); nop; jump (m14,i12) (db); \
                         i7=i6; i6=dm(0,I6)

so i don't undertand why the rframe is replaced by  i6=dm(0,i6); modify (i7,0xX); for ours application we need to keep the i7=i6; i6=dm(0,I6). because some qualified script check the stack and we can't change these script.

i 've tested with vdsp5.1.1 and 5.1.2 it the same pb.

thks for your help & time.

  • 0
    •  Analog Employees 
    on Nov 6, 2020 2:22 PM 25 days ago

    Hi,

    Sorry for the delay in response.

    1) Regarding, "but today i use VDSP 5.0 update 8 with the same command but the RFRAME instruction is replaced by i6=dm(0,i6); modify (i7,0xX); with X variant."
    >> Can you share exact version of Visual DSP that you are using?

    2) Are you facing any issues? Can you share the screen shot for error?

    3) We have checked with "asm_sprt.h" it contains "i7=i6; i6=dm(0,I6)" and we cannot find "i6=dm(0,i6); modify (i7,0xX)". Can you explain where the instruction got replaced?

    Regards,
    Anand Selvaraj.

  • Hy, thks for your answer.

    1) befor we use this version on XP :

    VisualDSP++ 5.0 Update 3
    User Interface Driver : SHARC version 8.0.3.3 (May  7 2008 18:23:02)
                     BUILD-B-REL-VDSP5_0-20080507-1703
      Copyright (c) 1997-2008 Analog Devices, Inc.
      Copyright (c) 1997-1999 Edinburgh Portable Compilers, Ltd.

    the rframe instruction is replaced by " i12=dm(m7,i6); nop; jump (m14,i12) (db); i7=i6; i6=dm(0,I6) "

    now we use on W7 :

    VisualDSP++ 5.1.2
    User Interface Driver : SHARC version 8.1.11.1 (Aug  9 2013 15:37:35)
                     BUILD-B-REL-VDSP5_0A-20130809_1441
      Copyright (c) 1997-2013 Analog Devices, Inc.
      Copyright (c) 1997-1999 Edinburgh Portable Compilers, Ltd.

    the rframe instruction is rplaced by " i12=dm(m7,i6); nop; jump (m14,i12) (db);  i6=dm(0,i6); modify (i7,0xX);" we have the same pb with VisualDSP++ 5.0 Update 8. BUt on asm_sprt.h we have "#  define leaf_exit      i12=dm(m7,i6); nop; jump (m14,i12) (db); \
                             i7=i6; i6=dm(0,I6)" we don't understand why we have "i6=dm(0,i6); modify (i7,0xX);"

    2) No issue just the workaround -rframe doesn't work correctly.

    3) we don't understand how this instruction is replaced by "i6=dm(0,i6); modify (i7,0xX)" 

    we use ""c:\program files\analog devices\visualdsp 5.0\\cc21k.exe" -21160 -double-size-32 -v -c -workaround rframe -no-simd " on XP and VDSP 5.0 update 3 no problem but on W7 VDSP 5.0 update 8 or more the workaround doesn't work as describe on datasheet.