Joep, if you have a one byte input procedure and call that with another procedure with pragma inline and no volatile there is no overhead. It is like an alias. I have tested this many times. I will give you a full report.
The code I gave you has a JALv2 bug and therefore does not work. If this bug is fixed, I think there will be no overhead. I could be wrong because it is a pseudo var. pseudo var + no volatile has a bug (just like my other bug in this discussion with arrays). I don't have a complete way to test with this bug, but I can show other examples with normal vars. Matt. On Sep 18, 2:10 pm, Joep Suijs <[email protected]> wrote: > Hi Matt, > > Looking at the asm, the example you supply does not work (the assigned > char is not there). > Inline with volatile takes 12 bytes, without inline the call is 20 > bytes and the code is 40 bytes. > And the direct assign is 6 bytes. > > > Seems that I have another bug here: > > With pragma inline it works ok > > I guess this is with volatile ? > > > With no volatile it works ok > > It actually does, since there is only one character! > > > with pragma inline and no volatile it outputs junk. This way would > > actually give no overhead if fixed. > > I think this is the example below. It only has a call to > l__serial_hw_data_put without setting a value first. > > > procedure print_char(byte out device, byte in character) is > > pragma inline > > device = character > > end procedure > > So in my particular case (which might have to do with banking) the > procedure takes twice the memory of a direct assign. I consider this a > large overhead! > > Joep -- You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jallib?hl=en.
