]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/sparc64/kernel/visemul.c
sparc64: Fix VIS emulation bugs
[linux-2.6-omap-h63xx.git] / arch / sparc64 / kernel / visemul.c
index 9e05cb5cb855ba5d0f2d3367d6e0a4e5023fe663..69f8a35c6bcdef4e885738a2c1c49ffe4377ce3b 100644 (file)
 #define VIS_OPF_SHIFT  5
 #define VIS_OPF_MASK   (0x1ff << VIS_OPF_SHIFT)
 
-#define RS1(INSN)      (((INSN) >> 24) & 0x1f)
+#define RS1(INSN)      (((INSN) >> 14) & 0x1f)
 #define RS2(INSN)      (((INSN) >>  0) & 0x1f)
 #define RD(INSN)       (((INSN) >> 25) & 0x1f)
 
@@ -445,7 +445,7 @@ static void pdist(struct pt_regs *regs, unsigned int insn)
        unsigned long i;
 
        rs1 = fpd_regval(f, RS1(insn));
-       rs2 = fpd_regval(f, RS1(insn));
+       rs2 = fpd_regval(f, RS2(insn));
        rd = fpd_regaddr(f, RD(insn));
 
        rd_val = *rd;