diff options
author | Claudio Fontana <claudio.fontana@huawei.com> | 2013-10-22 10:51:18 +0200 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2014-04-25 13:19:58 +0100 |
commit | fe1722861f514e5805644326dda323aec30200b5 (patch) | |
tree | 056d24e730377157a3219c427908564a6a6bd38a /risugen | |
parent | 7ddb260a75198f0a1b0853d0f3c3e11ffb354a6c (diff) |
risugen: allow shift by 4 in reg_plus_reg_shifted
aarch64 SIMD/fp instruction variants require addressing
in the form register plus register shifted by 4, to align
128bit data.
Signed-off-by: Claudio Fontana <claudio.fontana@linaro.org>
Diffstat (limited to 'risugen')
-rwxr-xr-x | risugen | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -713,7 +713,9 @@ sub reg_plus_reg_shifted($$$@) { # handle reg + reg LSL imm addressing mode my ($base, $idx, $shift, @trashed) = @_; - die "reg_plus_reg_shifted: bad shift size\n" if ($shift < 0 || $shift > 3); + if ($shift < 0 || $shift > 4 || (!$is_aarch64 && $shift == 4)) { + die "reg_plus_reg_shifted: bad shift size\n"; + } my $savedidx = 0; if ($idx == 0) { # save the index into some other register for the |