eTPU_C Product News
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.
http://www.bytecraft.com/depot/depot.php
The following notes summarize the changes.
Corrections
- Saving of DIOB register in complex expressions. DIOB was being lost is some complex expressions.
- 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
Changes
- Bit set or clear handling code generation.
- Byte access optimization in registers.
- "
if (*h)" changed to load into void instead of AC. - 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. - 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.
Additions
#asm( ram p = prm1; return,noflush.);is now being allowed as a single instruction.- Added dispatch call, jump, goto and return support to formats D1..D4 RAM.
- Added dispatch call, jump, goto and return support to formats D1..D4 CHAN.
- 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 ..."
- Added following a call or jump:
FREE_G ; FREE_P ; LOCK_P0 ; LOCK_P1 ; LOCK_P2 ; LOCK_P3 ; LOCK_G0 ; LOCK_G1 ; LOCK_G2 ; LOCK_G3
This is an alternative syntax for what is usually a RAM modifier but not always viewed as a RAM modifier.
- Alternative syntax support code for 'IF' statement following a RAM instruction.
Contacting Byte Craft Limited
| eTPU C compiler support contact | etpuc@bytecraft.com |
| Sales and extended support | sales@bytecraft.com |
| Website eTPU C information | http://www.bytecraft.com/eTPU_C |
| eTPU features list | http://bytecraft.com/eTPU_C/Features |
| eTPU faq | http://bytecraft.com/downloads/eTPU_C_FAQ.pdf |
| eTPU product summary | http://bytecraft.com/downloads/ExecutiveSummary.swf |
Byte Craft Limited
55 Northfield Drive East 213
Waterloo, Ontario
Canada N2K 3T6
1(519)888-6911

eTPU_C:
C6808: