summaryrefslogtreecommitdiff
path: root/scripts/decodetree.py
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2019-03-05 15:34:41 -0800
committerRichard Henderson <richard.henderson@linaro.org>2019-03-12 09:46:58 -0700
commit2decfc95583dc28add69810eaca6ada7b4b44d3a (patch)
tree718b5b36ee3787742d9c30f344922f2bc802ae44 /scripts/decodetree.py
parent71ecf79bf40db20237a3cfc01cc407cc4cad8817 (diff)
downloadqemu-2decfc95583dc28add69810eaca6ada7b4b44d3a.zip
decodetree: Properly diagnose fields overflowing an insn
Previously this would result in an exception for shifting the field mask by a negative number. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'scripts/decodetree.py')
-rwxr-xr-xscripts/decodetree.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/scripts/decodetree.py b/scripts/decodetree.py
index ac158b42d0..aa790b596a 100755
--- a/scripts/decodetree.py
+++ b/scripts/decodetree.py
@@ -622,6 +622,8 @@ def parse_generic(lineno, is_format, name, toks):
sign = True
flen = flen[1:]
shift = int(flen, 10)
+ if shift + width > insnwidth:
+ error(lineno, 'field {0} exceeds insnwidth'.format(fname))
f = Field(sign, insnwidth - width - shift, shift)
flds = add_field(lineno, flds, fname, f)
fixedbits <<= shift