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.

Reply via email to