Skip to content

Commits

Permalink
ppc-altivec-rth
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Dec 20, 2018

  1. target/ppc: convert vmin* and vmax* to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    c88dd4e View commit details
    Browse the repository at this point in the history
  2. target/ppc: convert vadd*s and vsub*s to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    c60976d View commit details
    Browse the repository at this point in the history
  3. target/ppc: Split out VSCR_SAT to a vector field

    Change the representation of VSCR_SAT such that it is easy
    to set from vector code.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    927445b View commit details
    Browse the repository at this point in the history
  4. target/ppc: Add set_vscr_sat

    This is required before changing the representation of the register.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    7eb164f View commit details
    Browse the repository at this point in the history
  5. target/ppc: Use mtvscr/mfvscr for vmstate

    This is required before changing the representation of the register.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    b6ab9b6 View commit details
    Browse the repository at this point in the history
  6. target/ppc: Add helper_mfvscr

    This is required before changing the representation of the register.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    656fd44 View commit details
    Browse the repository at this point in the history
  7. target/ppc: Remove vscr_nj and vscr_sat

    These macros are no longer used.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    74c2755 View commit details
    Browse the repository at this point in the history
  8. target/ppc: Use helper_mtvscr for reset and gdb

    Not setting flush_to_zero from gdb_set_avr_reg was a bug.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    d43c701 View commit details
    Browse the repository at this point in the history
  9. target/ppc: Pass integer to helper_mtvscr

    We can re-use this helper elsewhere if we're not passing
    in an entire vector register.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    d8eab91 View commit details
    Browse the repository at this point in the history
  10. target/ppc: convert xxsel to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    0b1f79b View commit details
    Browse the repository at this point in the history
  11. target/ppc: convert xxspltw to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    10b6fbc View commit details
    Browse the repository at this point in the history
  12. target/ppc: convert xxspltib to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    d6c2ceb View commit details
    Browse the repository at this point in the history
  13. target/ppc: convert VSX logical operations to vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    951db79 View commit details
    Browse the repository at this point in the history
  14. target/ppc: convert vsplt[bhw] to use vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    2120503 View commit details
    Browse the repository at this point in the history
  15. target/ppc: convert vspltis[bhw] to use vector operations

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    5d7719f View commit details
    Browse the repository at this point in the history
  16. target/ppc: convert vaddu[b,h,w,d] and vsubu[b,h,w,d] over to use vec…

    …tor operations
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    c5f7fcc View commit details
    Browse the repository at this point in the history
  17. target/ppc: convert VMX logical instructions to use vector operations

    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    f13c75a View commit details
    Browse the repository at this point in the history
  18. target/arm: Use vector minmax expanders for aarch32

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    af9feb0 View commit details
    Browse the repository at this point in the history
  19. target/arm: Use vector minmax expanders for aarch64

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    8bbaf94 View commit details
    Browse the repository at this point in the history
  20. tcg/i386: Implement vector minmax arithmetic

    The instruction set does not directly provide MO_64.  We can still
    implement signed 64-bit with comparison and vpblendvb.  Since the
    ISA has no unsigned comparison, it would take 4 insns to implement
    unsigned 64-bit, which is probably quicker as integers.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    eb9159f View commit details
    Browse the repository at this point in the history
  21. tcg: Add opcodes for vector minmax arithmetic

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    33a27cc View commit details
    Browse the repository at this point in the history
  22. tcg/i386: Implement vector saturating arithmetic

    Only MO_8 and MO_16 are implemented, since that's all the
    instruction set provides.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    d96c93f View commit details
    Browse the repository at this point in the history
  23. tcg: Add opcodes for vector saturated arithmetic

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    36fa7cc View commit details
    Browse the repository at this point in the history
  24. tcg: Add write_aofs to GVecGen4

    This allows writing 2 output, 3 input operations.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    7a2f615 View commit details
    Browse the repository at this point in the history
  25. tcg: Add gvec expanders for nand, nor, eqv

    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    545ae34 View commit details
    Browse the repository at this point in the history
  26. target/arm: Rely on optimization within tcg_gen_gvec_or

    Since we're now handling a == b generically, we no longer need
    to do it by hand within target/arm/.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    127ab78 View commit details
    Browse the repository at this point in the history
  27. tcg: Add logical simplifications during gvec expand

    We handle many of these during integer expansion, and the
    rest of them during integer optimization.
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 authored and mcayland committed Dec 20, 2018
    Copy the full SHA
    a36a2be View commit details
    Browse the repository at this point in the history
  28. target/ppc: replace AVR* macros with Vsr* macros

    Now that the VMX and VSR register sets have been combined, the same macros can
    be used to access both AVR and VSR field members.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    45d933b View commit details
    Browse the repository at this point in the history
  29. target/ppc: move FP and VMX registers into aligned vsr register array

    The VSX register array is a block of 64 128-bit registers where the first 32
    registers consist of the existing 64-bit FP registers extended to 128-bit
    using new VSR registers, and the last 32 registers are the VMX 128-bit
    registers as show below:
    
                64-bit               64-bit
        +--------------------+--------------------+
        |        FP0         |                    |  VSR0
        +--------------------+--------------------+
        |        FP1         |                    |  VSR1
        +--------------------+--------------------+
        |        ...         |        ...         |  ...
        +--------------------+--------------------+
        |        FP30        |                    |  VSR30
        +--------------------+--------------------+
        |        FP31        |                    |  VSR31
        +--------------------+--------------------+
        |                  VMX0                   |  VSR32
        +-----------------------------------------+
        |                  VMX1                   |  VSR33
        +-----------------------------------------+
        |                  ...                    |  ...
        +-----------------------------------------+
        |                  VMX30                  |  VSR62
        +-----------------------------------------+
        |                  VMX31                  |  VSR63
        +-----------------------------------------+
    
    In order to allow for future conversion of VSX instructions to use TCG vector
    operations, recreate the same layout using an aligned version of the existing
    vsr register array.
    
    Since the old fpr and avr register arrays are removed, the existing callers
    must also be updated to use the correct offset in the vsr register array. This
    also includes switching the relevant VMState fields over to using subarrays
    to make sure that migration is preserved.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    222a497 View commit details
    Browse the repository at this point in the history
  30. target/ppc: merge ppc_vsr_t and ppc_avr_t union types

    Since the VSX registers are actually a superset of the VMX registers then they
    can be represented by the same type. Merge ppc_avr_t into ppc_vsr_t and change
    ppc_avr_t to be a simple typedef alias.
    
    Note that due to a difference in the naming of the float32 member between
    ppc_avr_t and ppc_vsr_t, references to the ppc_avr_t f member must be replaced
    with f32 instead.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    26f7fa6 View commit details
    Browse the repository at this point in the history
  31. target/ppc: switch FPR, VMX and VSX helpers to access data directly f…

    …rom cpu_env
    
    Instead of accessing the FPR, VMX and VSX registers through static arrays of
    TCGv_i64 globals, remove them and change the helpers to load/store data directly
    within cpu_env.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    42e5773 View commit details
    Browse the repository at this point in the history
  32. target/ppc: introduce get_cpu_vsr{l,h}() and set_cpu_vsr{l,h}() helpe…

    …rs for VSR register access
    
    These helpers allow us to move VSR register values to/from the specified TCGv_i64
    argument.
    
    To prevent VSX helpers accessing the cpu_vsr array directly, add extra TCG
    temporaries as required.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    762f16a View commit details
    Browse the repository at this point in the history
  33. target/ppc: introduce get_avr64() and set_avr64() helpers for VMX reg…

    …ister access
    
    These helpers allow us to move AVR register values to/from the specified TCGv_i64
    argument.
    
    To prevent VMX helpers accessing the cpu_avr{l,h} arrays directly, add extra TCG
    temporaries as required.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    c889eac View commit details
    Browse the repository at this point in the history
  34. target/ppc: introduce get_fpr() and set_fpr() helpers for FP register…

    … access
    
    These helpers allow us to move FP register values to/from the specified TCGv_i64
    argument in the VSR helpers to be introduced shortly.
    
    To prevent FP helpers accessing the cpu_fpr array directly, add extra TCG
    temporaries as required.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    ff074f7 View commit details
    Browse the repository at this point in the history
  35. target/ppc: switch EXTRACT_HELPER macros over to use sextract32/extra…

    …ct32
    
    These ensure that we consistently handle signed and unsigned extensions correctly
    when decoding immediates from instruction opcodes.
    
    Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    mcayland committed Dec 20, 2018
    Copy the full SHA
    2565a7e View commit details
    Browse the repository at this point in the history
Older