We are not removing branches.
To fix this in hardware without software changes you would have to disable branch prediction. That would perform worse than what we are doing.
To fix this in hardware without software changes you would have to disable branch prediction. That would perform worse than what we are doing.
It is a really cool piece of engineering but we can still be sad we have to implement it.
(On the hardware side I was assuming sommeone clever at Intel will come up with some security non Perf killing change to make branches trustable again).
Similarly, where we use pointer poisoning, it is in addition to some other security check, which is almost always a branch.