Yes, with the MPLAB XC8 compiler you can define a function as inline by using the inline specifier or #pragma inline.
The inline specification to a function is just a recommendation that the function be inlined rather than making calls to it. The compiler may or may not obey this specification depending on various factors.
The following is an example:
The assembly code for inlining can be verified from the .lst file (list file) generated for the code as.
All function calls to any function that was inlined by the compiler will be encoded as if the call was replaced with the body of the called function. This is performed at the assembly code level.
If inlining takes place, this will increase the program’s execution speed, since the call and return sequences associated with the call will be eliminated. It will also reduce the hardware stack usage as no call instruction is actually executed.
Any stack reduction is not reflected in the call graphs shown in the assembly list file as this file is generated before inlining takes place.