Message ID | 1442238791-30255-12-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | d3a77b42decd0cbfa62a5526e67d1d6d380c83a9 |
Headers | show |
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c index f2f8443..3ab0b42 100644 --- a/target-arm/translate-a64.c +++ b/target-arm/translate-a64.c @@ -3015,7 +3015,11 @@ static void disas_bitfield(DisasContext *s, uint32_t insn) } tcg_rd = cpu_reg(s, rd); - tcg_tmp = read_cpu_reg(s, rn, sf); + + /* Suppress the zero-extend for !sf. Since RI and SI are constrained + to be smaller than bitsize, we'll never reference data outside the + low 32-bits anyway. */ + tcg_tmp = read_cpu_reg(s, rn, 1); /* Recognize the common aliases. */ if (opc == 0) { /* SBFM */