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.

difference in assembler behavior using TI tools v15.12.2LTS between F28069 and F28379

Hello all,

I'm trying to port some assembly running on a Piccolo 069 to a Delfino 379 using the same version of the compiler tools, ( v15.12.2LTS) on CCS 6.1.0

I've isolated the problem with the following sample code:

B_3             .set    0008h   ; Bit Mask to set bit 3
B_2             .set    0004h   ; Bit Mask to set bit 2
B_1             .set    0002h   ; Bit Mask to set bit 1
B_0             .set    0001h   ; Bit Mask to set bit 0

B4                .set    0010h    ; Bit Mask to set bit 4
B3                .set    0008h    ; Bit Mask to set bit 3    ERROR ON THIS LINE
B2              .set    0004h   ; Bit Mask to set bit 2       ERROR ON THIS LINE
B1              .set    0002h   ; Bit Mask to set bit 1       ERROR ON THIS LINE
B0              .set    0001h   ; Bit Mask to set bit 0       ERROR ON THIS LINE

   .def     _Sample_code
    .text

 .c28_amode
_Sample_code:
    SETC     SXM                                       ;
    MOV      AH,            AL
    SUB      AH,            *+XAR4[6]                  ;
    MOV      *+XAR4[6],     AL                         ;
    MOV      ACC,           AH<<16                     ;
    LRETR

When I assemble the file for the 069, it compiles without a problem.

When I assemble the file for the 379, I get eight errors, two each for the lines indicated above.

The errors I get are:

1) Invalid mnemonic specification

2) Only labels and comments may begin in the first column. Make sure that the label name is not a reserved keyword.

I've searched the online assembler tools user guide for reserved/keywords, and didn't find any listed restrictions on the symbols B0, B1, B2, or B3

Am I missing something?

Thanks,

Spencer

  • Hi Spencer,

    Im pretty sure this is because of the VCU. The 069 has a VCU-type 0 (VCU-0) while the 2837x has a VCU-type 1 (commonly known as VCU-2). Now on the VCU-2 there are new instructions that can operate on each byte of a VRx register; these instructions weren't on the VCU-0. The operands take the form VRx.By, x=0:7, y=0:3

    So VR1.B2 is byte 2 of the VR1 register. So B0, B1, B2 and B3 are reserved for use in a VCU assembly instruction only and thats why its complaining its reserved. I dont know if its reserved only if the VCU support is turned off -  you can try turning of the --vcu_support and see if its still reserved...but i think it will probably be best to rename them. 

  • Correction: " I dont know if its reserved only if the VCU support is turned *ON* - you can try turning *OFF* the --vcu_support and see if its still reserved...but i think it will probably be best to rename them"