If I use the BF706, at maximum speed, to simply pulse a GPIO pin high and low in a loop, I get a frequency of 8.333 MHz. If I now introduce more code in the loop, the frequency does not reduce until the number of instructions reaches around 48. So this:
Is the same as this:
loop lc0=40; // waste time
My guess is that 8.333 MHz X 48 instructions gives 400 MHz, which is the clock rate of the device. However, it seems weird that the loop doesn't slow down until this limit is reached. How does it know? Does it use multiple threads?