We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear all,
System: Altera Cyclone V with ARM Cortex-A9 dual-core MPU. CoreSight PFT 1.0
I am currently developing a trace decompressor. I wrote a function that parses the program image in order to get the waypoint information of each instruction.
This article on waypoints tells me to treat barrier instructions like direct branches:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0035b/BCGJHDID.html
if i do that, my decoded stream is out of sync at the next i-sync packet. If i treat barrier instructions like non-waypoint-instructions, my decoded stream remains in sync.
The same is true for synchronization primitives.
I am wondering whats going on here, because the arm documentation usually is very reliable and these would be quite big mistakes, so what am i missing here? Can i really regard my decoded stream as valid only because my decompressor calculated the same address as the i-sync packet tells me?
Thank you!
Does footnote (b) apply?
Good point, i think that explains the first problem. I will report back when i tried it out.
In the meantime: What about "strex" and "ldrex" then? The same problem occurs around these operations ...