Hi. I m using 89C51. I have made all those functions that are called from non-ISR as well as ISR as reentrant and defined reentrant stack in XDATA. Here, i want to know that for each call to reentrant function, process will do the PUSH and POP operation to store local variables and function's arguments on simulated reentrant stack or only in those cases when interrupt occurs during the execution of reentrnat function ?