• Pierre Langlois's avatar
    [cctest] Record execution of parallel moves. · dabd1c0a
    Pierre Langlois authored
    This patch is a first step towards target independent tests for the
    CodeGenerator's AssembleMove and AssembleSwap methods.
    
    The tests on top of which this builds would only make sure that no assertions
    were triggered while generating moves, and that the hardware is happy executing
    them. We want to do more and check that the generated code performs correctly.
    
    In a nutshell, this introduces a facility that can do the following:
    
      - Setup an environment with registers and stack slots initialised with random
        values.
      - Perform a list of randomly generated moves and/or swaps on those.
      - Return the resulting environment.
    
    This is a first step and therefore is lacking a few things which will be
    implemented as follow-ups:
    
      - Support for kSimd128 moves and swaps.
      - Support large offsets for stack moves, as well as positive and negative.
      - Compare the resulting environment against the result of a reference
        simulation.
    
    For more background information, see this design document:
    https://docs.google.com/document/d/1KpioxCmtiB_9RaPaRidZPVtKlZ2BaNKGPYUjKFihhK0
    
    Bug: v8:6848
    Change-Id: Ie7dc837f4444df010ab58c64b722d40ee5d2af72
    Reviewed-on: https://chromium-review.googlesource.com/677398Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Cr-Commit-Position: refs/heads/master@{#48459}
    dabd1c0a
test-code-generator.cc 38.4 KB