This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Stability of ASM function calls

Say I have a function:

unsigned char* func1(unsigned char param1, signed int param2);

That would be an ASM function being called from C. The actual parameters and return type are rather irrelevant, and are just presented as an example.

Can it be guaranteed that the storage of the parameters passed to the function will not change, provided I do not change the prototype?

For my question, please assume that the toolchain does not change. (i.e. No upgrades/updates to C51)

I'm just told by the manual to make the function in C, then repeat in assembly how it appears in the compiler assembly listing. I really need to be able to assume that once I create the ASM function and the C function prototype, that that is totally stable in it's current format, even if I rebuild the entire project.

Further questions for anyone who knows:
*Is it written anywhere on if the internal ABI may change with future versions?
*Is the ABI anywhere? As I said, I can only find a statement of what amounts to: Try it and make it match what the C compiler does.

Parents Reply Children
No data