Re: [hatari-devel] Re: BM407 + symbols |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Hi,
On tiistai 09 huhtikuu 2013, Douglas Little wrote:
> > For subroutine call instructions that take an absolute address instead
> > of destination being specified indirectly (e.g. in register), that
> > would probably be very safe as absolute subroutine call to next
> > instruction would be really dumb. :-)
>
> Exactly. It would need to be conditional via a register to make any
> sense. And TBH it's an assumption you could mandate in the profiler
> 'dont do this if you want sensible profiles'. :-)
>
> > I would assume that even for indirect destinations that is pretty safe.
> > I'd guess it rare for code to call subroutine on next instruction
> > before going to it by normal PC increment. It might still happen
> > though, if one needs to do tail call to the same function multiple
> > times and wants to save one branch & rts instruction...
>
> Yes pretty much what I wrote above. I think its ok providing you document
> the limitation.
Besides discussing it here, profiler code has pretty verbose comments about
these kind of things and the DSP side stuff is pretty small, so I would
expect anybody wondering about this to look into profiler code... :-)
I've now fixed all the problems I found with BadMood profiling automation,
but before I commit them, I need to fix some stuff in post-processor
which affected by these changes.
Btw. there's still one issue in the callgraphs.
If an instruction preceeding a symbol did a subroutine call, like here:
----------
p:0155 00000c (04 cyc) rts
....
p:0378 0f7130 (04 cyc) jsgt p:$0130
end_addwall:
p:0379 699b00 (02 cyc) move y:$001b,r1
----------
Caller information shows that processor got into (end_addwall) function
from an rts, and that's what is seen in callgraphs currently, both for
CPU& DSP.
While it's technically true, logically the function was arrived from
preceeding instruction that did a subroutine call. This can be a bit
confusing. I'll look whether I can do something for that before posting
new callgraphs.
- Eero