Forum : 8051
Post Information | Post |
---|---|
May 18, 2007 - 6:21pm
|
In the large model: PUBLIC S16 foo(S16 a, S16 b) makes ; FUNCTION _foo (BEGIN) Parameter 'a' is handled in registers (good) but 'b' is passed out to xdata, then read back, before being 'minused'. The same thing happens if #pragma AUTO is set; 'b' is stacked, then read back. I've seen this patttern often. It seems the compiler doesn't look ahead to see if addtional parameters can be kept in the register bank. There's an oppotunity for optimisation. regards Steven Pruzina |
Steven,
We added your improvement in our bug database, and it will be implemented in the next release.
Regards,
Stéphane