Freescale HC12/HCS12 tools history highlights (cont)
The compiler implements a unified representation of far addresses. Far pointer variables are using a pointer display with logical address first followed by the page value, while long integer variables are using a linear high to low display compatible with standard 32 bits operations.
The parser was producing a PANIC error message when calling a far function by a pointer to a near function cast into a pointer to a far function.
The compiler adds support for HCS12B family.
The compiler optimizes the allocation of local variables by sharing at the same location for variables which are not used together.
The constant propagation optimization has been enhanced for initialized declarations of local variables.
@far pointers to const objects are no longer accessing these objects via the ppage register by default. Explicit accesses using ppage is enabled by using the @ppage modifier.
The linker has been enhanced to propagate an alignment request with option -r to all the modules of the segment and not only to the segment start address.
The compiler supports anonymous structure and unions as an extension
to the ANSI standard.
The linker has been enhanced to allow the -x option on -w segments
thus allowing automatically filled banked segments to be expanded
to another one when full.
The optimizer has been enhanced for a better optimization of loops.
The inline function feature is enhanced to allow return values, switch statements and local labels. New inline function mechanism also includes new code and execution speed optimizations.
New IDEA Version 4 included - Offers new editing, search, and project analysis options and features.
New pragma allows unbanked functions to be produced in the banked section.
Support for the direct page register.
The compiler now produces code by default for HCS12 processors. There is no more need to split source files depending on the functions allocation (banking).
The code generator allows the IO registers to be based from an application symbol. Improved shift management.
New library functions isqrt() and lsqrt(). Improved EEPROM management..