3

BPIALL is documented as not implemented, but the branch predictor is documented and easy to see in testing that it is implemented. The BTAC bits in the ACTLR work as described, you can basically disable it with one bit, and you can prevent new branches from being cached with another. But so far I cannot figure out how to clear the BPI cache. (clearing the instruction cache doesnt help).

old_timer
  • 69,149
  • 8
  • 89
  • 168
  • Have you tried an ISB instruction after disabling the branch prediction? As BPIALL is not implemented I am not sure what else you can do. The Branch predictor is always enabled according to the manual, all you can do is disable the BTAC. I guess you are not really meant to switch it on and off on the fly. I have only ever needed to switch it off for debugging. – Realtime Rik Apr 11 '17 at 07:06
  • yep, dsb then isb. sounds like you are reading what I am reading, was hoping for something I missed. Thanks... – old_timer Apr 11 '17 at 10:52
  • I don't think you have missed anything as far as I can see. – Realtime Rik Apr 11 '17 at 11:02

0 Answers0