• danno's avatar
    Remove register index/code indirection · 80bc6f6e
    danno authored
    Previous to this patch, both the lithium and TurboFan register
    allocators tracked allocated registers by "indices", rather than
    the register codes used elsewhere in the runtime. This patch
    ensures that codes are used everywhere, and in the process cleans
    up a bunch of redundant code and adds more structure to how the
    set of allocatable registers is defined.
    
    Some highlights of changes:
    
    * TurboFan's RegisterConfiguration class moved to V8's top level
      so that it can be shared with Crankshaft.
    * Various "ToAllocationIndex" and related methods removed.
    * Code that can be easily shared between Register classes on
      different platforms is now shared.
    * The list of allocatable registers on each platform is declared
      as a list rather than implicitly via the register index <->
      code mapping.
    
    Review URL: https://codereview.chromium.org/1287383003
    
    Cr-Commit-Position: refs/heads/master@{#30913}
    80bc6f6e
assembler-arm64.cc 97.2 KB