This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

-mv6443 does not produce C64x+ code

Other Parts Discussed in Thread: TMS320DM6443

Short version:

Compiling a file with -mv6443 produces code for TMS320C64xx architecture.

Since DM6443 supports C64x+, I would have expected code for TMS320C64x+.

Is this a compiler bug?

Longer version:

Compiling for 6443:

$ ~/c6_6.1.22/bin/cl6x  -k -mv6443  irq.c

gives irq.asm:

#####

;******************************************************************************
;* TMS320C6x C/C++ Codegen                                       Unix v6.1.22 *
;* Date/Time created: Fri Sep 28 16:29:47 2012                                *
;******************************************************************************
        .compiler_opts --c64p_l1d_workaround=default --endian=little --hll_sourc
e=on --mem_model:code=near --mem_model:const=data --mem_model:data=far_aggregate
s --silicon_version=6443 --symdebug:skeletal

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64xx                                          *

######

Compiling for generic c64+:

$ ~/c6_6.1.22/bin/cl6x  -k -mv64p  irq.c

gives:

######

;******************************************************************************
;* TMS320C6x C/C++ Codegen                                       Unix v6.1.22 *
;* Date/Time created: Fri Sep 28 16:31:53 2012                                *
;******************************************************************************
        .compiler_opts --c64p_l1d_workaround=default --endian=little --hll_sourc
e=on --mem_model:code=near --mem_model:const=data --mem_model:data=far_aggregate
s --silicon_version=6500 --symdebug:skeletal

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C64x+                                          *

#####

Compiling this (that use c64x+ only intructions):

#####

int x;

int main()
{
  asm(" DINT");
  x++;
  asm(" RINT");
  return x;
}

#####

with 6443 fails:

####

$ ~/c6_6.1.22/bin/cl6x  -k -mv6443  irq.c
"irq.asm", ERROR!   at line 68: [E0800] Instruction invalid for C6400
         DINT

"irq.asm", ERROR!   at line 74: [E0800] Instruction invalid for C6400
         RINT

2 Assembly Errors, No Assembly Warnings

Errors in Source - Assembler Aborted

>> Compilation failure

#####

/Thomas