- The __asm__() instruction has been improved.
In previous versions, assembler instructions
generated from __asm__() were not able to change the stack pointer FSR0, because it prevented the compiler
to access the local variables properly. This limitation is removed, allowing the programmer to insert a more sophisticated
assembler code. See section 12.12.3 for details.
- New pragma to specify the registers to save in an Interrupt Service Routine
This pragma makes the SAVE_REGISTERS and RESTORE_REGISTERS macros obsolete.
Advantages of this new way to save registers are numerous.
Full explanations in section 12.12.5.
- Reservation of stack space
The code used for stack space allocation (used for function parameters or local variables) has been improved.
This improvement was necessary for ISR that use more than 8 bytes of local variables.
This topic is very important to understand if you use
ISR routines. Please refer to the section 11.6 for details.
- Bug fixes
Two bugs, discovered and analyzed by Jon Hilt (thanks!) have been fixed.
One of them affected the compiler itself, and the second one the Run Time Library.
Alain Gibaud
2015-07-09