diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/vfp/vfpdouble.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/vfp/vfpdouble.c b/arch/arm/vfp/vfpdouble.c index 74e89f8fb3ab..190a09ad18eb 100644 --- a/arch/arm/vfp/vfpdouble.c +++ b/arch/arm/vfp/vfpdouble.c | |||
@@ -1132,7 +1132,7 @@ u32 vfp_double_cpdo(u32 inst, u32 fpscr) | |||
1132 | unsigned int vecitr, veclen, vecstride; | 1132 | unsigned int vecitr, veclen, vecstride; |
1133 | struct op *fop; | 1133 | struct op *fop; |
1134 | 1134 | ||
1135 | vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)) * 2; | 1135 | vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)); |
1136 | 1136 | ||
1137 | fop = (op == FOP_EXT) ? &fops_ext[FEXT_TO_IDX(inst)] : &fops[FOP_TO_IDX(op)]; | 1137 | fop = (op == FOP_EXT) ? &fops_ext[FEXT_TO_IDX(inst)] : &fops[FOP_TO_IDX(op)]; |
1138 | 1138 | ||
@@ -1184,10 +1184,10 @@ u32 vfp_double_cpdo(u32 inst, u32 fpscr) | |||
1184 | * CHECK: It appears to be undefined whether we stop when | 1184 | * CHECK: It appears to be undefined whether we stop when |
1185 | * we encounter an exception. We continue. | 1185 | * we encounter an exception. We continue. |
1186 | */ | 1186 | */ |
1187 | dest = FREG_BANK(dest) + ((FREG_IDX(dest) + vecstride) & 6); | 1187 | dest = FREG_BANK(dest) + ((FREG_IDX(dest) + vecstride) & 3); |
1188 | dn = FREG_BANK(dn) + ((FREG_IDX(dn) + vecstride) & 6); | 1188 | dn = FREG_BANK(dn) + ((FREG_IDX(dn) + vecstride) & 3); |
1189 | if (FREG_BANK(dm) != 0) | 1189 | if (FREG_BANK(dm) != 0) |
1190 | dm = FREG_BANK(dm) + ((FREG_IDX(dm) + vecstride) & 6); | 1190 | dm = FREG_BANK(dm) + ((FREG_IDX(dm) + vecstride) & 3); |
1191 | } | 1191 | } |
1192 | return exceptions; | 1192 | return exceptions; |
1193 | 1193 | ||