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
