In addition to the standard SDCC function keywords, PIC16
port makes available two more:
- __wparam
- Use the WREG to pass one byte
of the first function argument. This improves speed but you may not
use this for functions with arguments that are called via function
pointers, otherwise the first byte of the first parameter will get
lost. Usage:
-
- void func_wparam(int a) __wparam
{
/* WREG hold the lower part of a */
/* the high part of a is stored in FSR2+2 (or +3 for large stack model) */
...
}
- __shadowregs
- When entering/exiting
an ISR, it is possible to take advantage of the PIC18F hardware shadow
registers which hold the values of WREG, STATUS and BSR registers.
This can be done by adding the keyword __shadowregs before
the __interrupt keyword in the function's header.
-
- void isr_shadow(void) __shadowregs __interrupt 1
{
...
}
__shadowregs instructs the code generator not to store/restore
WREG, STATUS, BSR when entering/exiting the ISR.