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

Use of "using"

The C51 manual states, "The using attribute may not be used in functions that return a value in registers" and goes on to state, "Even when you use the same register bank, functions declared with the using attribute cannot return a bit value." It's clear that a bit value set in the carry flag isn't passed back to the calling function. It's not clear why a function "using" a register bank can't call another function "using" the same register bank: The same bank select bits are being pushed, loaded, and popped. Am I missing something, or is this an OK thing to do?

Parents
  • My experience of using C51 is that it has some very clever optimisations.

    So, although it may look fine in your "test case", there may well be other situations that rely upon you taking their word on this.

    If you really want the internal details, I guess you'll have to contact Keil support direct...

Reply
  • My experience of using C51 is that it has some very clever optimisations.

    So, although it may look fine in your "test case", there may well be other situations that rely upon you taking their word on this.

    If you really want the internal details, I guess you'll have to contact Keil support direct...

Children