# What is new in version 0.7.3 ?

1. 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 11.12.3 for details.

2. 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 11.12.4.

3. 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 10.6 for details.

4. 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.