- Loading...
...
On PPC we can shift and or with a single instruction, so we can implement Decode with these instructions:
mov Rdst = Rbaserldimi 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);
...