From b4799d1d456b833d3cccb3a3b1006dc0cb2e8f6e Mon Sep 17 00:00:00 2001 From: JanLJL Date: Fri, 20 Nov 2020 15:22:05 +0100 Subject: [PATCH] bugfix for immediate shifts with hex-base --- osaca/parser/parser_AArch64.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/osaca/parser/parser_AArch64.py b/osaca/parser/parser_AArch64.py index 5e2f249..2504e50 100755 --- a/osaca/parser/parser_AArch64.py +++ b/osaca/parser/parser_AArch64.py @@ -416,7 +416,12 @@ class ParserAArch64(BaseParser): if 'base_immediate' in immediate: # arithmetic immediate, add calculated value as value immediate['shift'] = immediate['shift'][0] - immediate['value'] = int(immediate['base_immediate']['value']) << int(immediate['shift']['value']) + immediate['value'] = ( + int( + immediate['base_immediate']['value'], + 16 if immediate['base_immediate']['value'].lower().startswith('0x') else 10 + ) << int(immediate['shift']['value']) + ) return AttrDict({self.IMMEDIATE_ID: immediate}) if 'float' in immediate: dict_name = 'float'