Re: A89: placing data into C variables from ASM(" ") constructs
[Prev][Next][Index][Thread]
Re: A89: placing data into C variables from ASM(" ") constructs
> > Why does the compiler insert "link a6,0"?
>
> Because it still creates a stack frame. It does not allocate space but
> creates a reference for arguments and a link to the calling function's
> frame.
D'oh! And it makes no difference if the functions has no arguments, either?
> > Also, how does it deal with the stack and local variables when you
> > turn it off entirely?
>
> Then it will reference everything relative to the stack pointer.
> If you don't use SP modifying stuff (like alloca()) the generated code
> is just as efficient as with frame pointer (even more, for the
> link/unlk is omitted) but debugging is much harder (because you can't
> walk through the activation records).
I can imagine debugging it, yes... yeach!
> > On a completely unrelated note: are higher-priority interrupts
> > triggered when you are inside another interrupt?
>
> Unless in the lower level interrupt routine explicitly disables
> them they can come in - that's the whole idea for having various
> levels. When an interrupt is accepted by the CPU it disables further
> interrupts on its own level and all below that. (Except for level 7
> which disables everything below itself but can't disable its own level.)
> All higher level interrupts will still be accepted.
Sounds about right... thanks.
/ Niklas Brunlid
Check out Prosit for the TI-89 / TI-92+ at http://prosit.ticalc.org
Random PQF Quote follows:
"In a word -- im-possible!"
"That's two words," said Dibbler.
-- (Terry Pratchett, Moving Pictures)
Follow-Ups:
References: