eTPU_C Product News

eTPU_C |

eTPU_C Compiler Update V1.0.7.85

The eTPU C compiler V1.0.7.85 has been released and is available from the customer update depot on Byte Craft's website.

The following notes summarize the changes.


  1. Saving of DIOB register in complex expressions. DIOB was being lost is some complex expressions.
  2. Condition codes properly set in the following code:
    int16 x;
    if (x == 0) { . . . }   // condition codes controlling the branch were
                            // not set for 16 bit variables


  1. Bit set or clear handling code generation.
  2. Byte access optimization in registers.
  3. "if (*h)" changed to load into void instead of AC.
  4. Consistently handling mixed mode between fract24 and int24. The following example generated the same code in previous versions. Starting with V1.0.7.80, assigning a int24 expression to a fract24 will start with aligning the decimal points. This will impact code written to take advantage of fract bit patterns.

    The fract bit patterns operations will need to use a union

                                              unsigned fract24 uf24;
                                              int   i24a,i24b;
    021C 9FEFFB01   ram p23_0 = 0005.         i24a = i24b * 32;
    0220 18087BAA   alu p = p <<4,ccs.
    0224 93F87A00   alu p = p <<1 ,ccs;
                      ram 0001 = p23_0.
    0228 9FEFFB01   ram p23_0 = 0005.         uf24 = i24b * 32;
    022C 18087BF2   alu p = p >>16,ccs.
    0230 18087B92   alu p = p >>2,ccs.
    0234 97F87A02   alu p = p >>1 ,ccs;
                      ram 0009 = p23_0. 
  5. Fixed code generation differences for constant array index calculation with indexes of 0 vs (0). The (0) previously did an array calculation and 0 treated the array the same as a variable access.


  1. #asm( ram p = prm1; return,noflush.); is now being allowed as a single instruction.
  2. Added dispatch call, jump, goto and return support to formats D1..D4 RAM.
  3. Added dispatch call, jump, goto and return support to formats D1..D4 CHAN.
  4. Added error to trap #asm ( GOTO 0x1234,FREE_G .);: "FREE_G is not a jump / call modifier."

    Validated FLUSH, NOFLUSH, NO_FLUSH in asm parser, added error "error Expected FLUSH, NOFLUSH, NO_FLUSH found ..."

  5. Added following a call or jump:
    FREE_G ;       FREE_P ;      LOCK_P0 ;
    LOCK_P1 ;     LOCK_P2 ;    LOCK_P3 ;
    LOCK_G0 ;     LOCK_G1 ;    LOCK_G2 ;

    This is an alternative syntax for what is usually a RAM modifier but not always viewed as a RAM modifier.

  6. Alternative syntax support code for 'IF' statement following a RAM instruction.

Contacting Byte Craft Limited

eTPU C compiler support contact
Sales and extended support
Website eTPU C information
eTPU features list
eTPU faq
eTPU product summary

Byte Craft Limited
55 Northfield Drive East 213
Waterloo, Ontario
Canada N2K 3T6