...
On PPC we can shift and or with a single instruction, so we can implement Decode with these instructions:
mov Rdst = Rbase
rldimi Rdst = Rdst || (Rsrc << 3)
As the move is off the critical path, this is superior to do a shift and an add. Unfortunately we must guarantee that Rdst != Rsrc. which we do with a TEMP_DEF effect:
instruct decodeN(iRegPdst dst, iRegNsrc src) %{
match(Set dst (DecodeN src));
effect(TEMP_DEF dst);
ImplicitNullChecks on operating systems where the zero page is not read protected.
...
Overview
Content Tools
ThemeBuilder