TASKING M16C v3.1r1 toolchain v3.1r1-p5 (patch 5)



This readme describes patch 5 for TASKING M16C toolchain version v3.1r1. This patch contains fixes for a number of reported problems.

Bugs solved

The following problems have been solved in patch 5:

PR36985: __str2ul() does not return correctly zero when A0 is zero.

The following problems have been solved in patch 4:

PR67644: Incorrect return value for float multiply with underflow/overflow when trapping.
PR67436: Incorrect optimization and -> blcr while zero-flag is live.

The following problems have been solved in patch 3:

PR57927: Sometimes incorrect results for float addition with a exponent difference of over 2^102.
PR35501: Function va_start() fails when local buffer > 127 bytes.
PR34672: Crash on array-operations on local in a register.
PR34716: When less then 8 bits are pushed in a function call, the stack is not correctly balanced.
PR34730: Updated sfr file for m30280 and m30290 derivatives.
PR35399: Updated sfr file for m30291 derivative.

The following problems have been solved in patch 2:

PR34393: PLL skip code in cstart.src not correct.
PR34394: SET_PLL macro not used correctly in rom-monitors for m30626p.
PR34408: Crossview problems reading DWARF2 debug info.
PR34456: Compiler: far pointer offset treated as short instead of long.
PR34470: Compiler: generates illegal instruction for swapping two struct members.
PR34479: Compiler: throws S917: Internal consistency checked failed.
PR34505: Non-trapping floating point multiply does not reserve enough bytes on stack for variables.
PR34514: The 3dk-m306n4 rom-monitor is faulty.
PR34518: Compiler: Do While loop reordered to a While Do loop.
PR34519: Compiler: Using logical operation on long variable leads to wrong result.

The following problems have been solved in patch 1:

PR34129: The v3.1 assembler does not allow \ line continuation.
PR34156: Unable to set timer registers in crossview.
PR34269: Compiler: 5 byte far copy overwrites the sixth byte in some occasions.
PR34279: CM0 is not initialized in the startup code in some cases.
PR34299: Too few COM-ports available.
PR34323: R8c.h of R8C rom-monitor sources misses some external function declarations.
PR34329: Project options are not saved when switching projects.
PR34331: Crossview crashes when using crossview's profiling and resetting the target.
PR34340: Compiler: Incorrect code generated for spilled bit.
PR34343: M16C/Tiny PM2 and PLL ede misconfiguration.
PR34348: Missing SFR definitions in regm3028* and regm3029*.
PR34430: Compiler: Incorrect code generated for STZ/STZN instructions.

The following problems have not been solved in patch 4:

PR34198: Compiler: __at() does not work for functions in C++.
PR34200: Compiler: __at() qualified function in a absolutely located section should give an error.
PR34300: Unable to locate large sections because cstart is located too low.
PR34397: Even without optimizations, sometimes locals can't be debugged.
PR34845: S900 internal inconsistency in large memory model for extremely complicated register allocation situation.

TASKING M16C Support Page
TASKING M16C Product Page
TASKING Developers' Forum

Copyright 2005-2009 Altium BV