• Joseph Myers's avatar
    sparc64: Fix VIS emulation bugs · 726c12f5
    Joseph Myers authored
    This patch fixes some bugs in VIS emulation that cause the GCC test
    failure
    
    FAIL: gcc.target/sparc/pdist-3.c execution test
    
    for both 32-bit and 64-bit testing on hardware lacking these
    instructions.  The emulation code for the pdist instruction uses
    RS1(insn) for both source registers rs1 and rs2, which is obviously
    wrong and leads to the instruction doing nothing (the observed
    problem), and further inspection of the code shows that RS1 uses a
    shift of 24 and RD a shift of 25, which clearly cannot both be right;
    examining SPARC documentation indicates the correct shift for RS1 is
    14.
    
    This patch fixes the bug if single-stepping over the affected
    instruction in the debugger, but not if the testcase is run
    standalone.  For that, Wind River has another patch I hope they will
    send as a followup to this patch submission.
    Signed-off-by: default avatarJoseph Myers <joseph@codesourcery.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    726c12f5
visemul.c 19.5 KB