diff --git a/osaca/data/isa/aarch64.yml b/osaca/data/isa/aarch64.yml index fa51d0d..85246ea 100644 --- a/osaca/data/isa/aarch64.yml +++ b/osaca/data/isa/aarch64.yml @@ -120,7 +120,7 @@ instruction_forms: post-indexed: "*" source: true destination: false - - name: [ldr, ldur] + - name: [ldr, ldur, ldrb, ldrh, ldrsb, ldrsh, ldrsw] operands: - class: register prefix: "*" diff --git a/osaca/semantics/arch_semantics.py b/osaca/semantics/arch_semantics.py index 103c71f..6940b7e 100755 --- a/osaca/semantics/arch_semantics.py +++ b/osaca/semantics/arch_semantics.py @@ -165,11 +165,7 @@ class ArchSemantics(ISASemantics): instruction_data = self._machine_model.get_instruction( instruction_form["instruction"], instruction_form["operands"] ) - if ( - not instruction_data - and self._isa == "x86" - and instruction_form["instruction"][-1] in self.GAS_SUFFIXES - ): + if not instruction_data and instruction_form["instruction"][-1] in self.GAS_SUFFIXES: # check for instruction without GAS suffix instruction_data = self._machine_model.get_instruction( instruction_form["instruction"][:-1], instruction_form["operands"] @@ -200,7 +196,6 @@ class ArchSemantics(ISASemantics): ) if ( not instruction_data_reg - and self._isa == "x86" and instruction_form["instruction"][-1] in self.GAS_SUFFIXES ): # check for instruction without GAS suffix diff --git a/osaca/semantics/isa_semantics.py b/osaca/semantics/isa_semantics.py index a3161f4..fca5955 100755 --- a/osaca/semantics/isa_semantics.py +++ b/osaca/semantics/isa_semantics.py @@ -55,11 +55,7 @@ class ISASemantics(object): isa_data = self._isa_model.get_instruction( instruction_form["instruction"], instruction_form["operands"] ) - if ( - isa_data is None - and self._isa == "x86" - and instruction_form["instruction"][-1] in self.GAS_SUFFIXES - ): + if isa_data is None and instruction_form["instruction"][-1] in self.GAS_SUFFIXES: # Check for instruction without GAS suffix isa_data = self._isa_model.get_instruction( instruction_form["instruction"][:-1], instruction_form["operands"] @@ -81,7 +77,6 @@ class ISASemantics(object): ) if ( isa_data_reg is None - and self._isa == "x86" and instruction_form["instruction"][-1] in self.GAS_SUFFIXES ): # Check for instruction without GAS suffix @@ -164,11 +159,7 @@ class ISASemantics(object): isa_data = self._isa_model.get_instruction( instruction_form["instruction"], instruction_form["operands"] ) - if ( - isa_data is None - and self._isa == "x86" - and instruction_form["instruction"][-1] in self.GAS_SUFFIXES - ): + if isa_data is None and instruction_form["instruction"][-1] in self.GAS_SUFFIXES: # Check for instruction without GAS suffix isa_data = self._isa_model.get_instruction( instruction_form["instruction"][:-1], instruction_form["operands"] @@ -192,7 +183,7 @@ class ISASemantics(object): for o in instruction_form.operands: if "pre_indexed" in o.get("memory", {}): # Assuming no isa_data.operation - if isa_data.get("operation", None) is not None: + if isa_data is not None and isa_data.get("operation", None) is not None: raise ValueError( "ISA information for pre-indexed instruction {!r} has operation set." "This is currently not supprted.".format(instruction_form.line)