Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...