Hi all,

I have observed that call and return instructions are predicted as if
these instructions were conditional branches. Such predictions even
modify branch history register.
As a consequence many times these instructions are predicted not-taken
and squash function must be called after they are executed.

Moreover, when a call instruction is predited taken and no target
address is found in BTB the prediction is changed to not-taken and RAS
entry associated with this call is removed. Squash function is called
after call instruction is executed to update BTB but RAS is not updated
so return instruction will get a wrong address.

Am i missing something?

Thanks,
Adrian




_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to