about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2019-10-31 22:27:28 +0100
committerGitHub <noreply@github.com>2019-10-31 22:27:28 +0100
commit83e54bd2de945a36ab5ccd4cc5b94817d7cb0112 (patch)
tree56bafd9e42ed08a113970f456a60c058916ee5bf
parent6303723ecf1f42bf5026d5b5e72ce06b93b66078 (diff)
parent2507258df533b58a9967296a3b675a09bb1e5eaa (diff)
downloadmiasm-83e54bd2de945a36ab5ccd4cc5b94817d7cb0112.tar.gz
miasm-83e54bd2de945a36ab5ccd4cc5b94817d7cb0112.zip
Merge pull request #1084 from serpilliere/fix_aarch64
Aarch64: add ldarb
-rw-r--r--miasm/arch/aarch64/arch.py2
-rw-r--r--miasm/arch/aarch64/sem.py2
-rw-r--r--test/arch/aarch64/arch.py2
3 files changed, 5 insertions, 1 deletions
diff --git a/miasm/arch/aarch64/arch.py b/miasm/arch/aarch64/arch.py
index d12fbe72..33c1d427 100644
--- a/miasm/arch/aarch64/arch.py
+++ b/miasm/arch/aarch64/arch.py
@@ -2152,7 +2152,7 @@ aarch64op("ldxp", [bs('1'), sf, bs('001000'), bs('0'), bs('1'), bs('1'), bs('111
 
 # load acquire/store release p.141
 aarch64op("ldar", [bs('1'), sf, bs('001000'), bs('1'), bs('1'), bs('0'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt], [rt, rn64_deref_nooff])
-aarch64op("ldarb",[bs('0'), bs('0'), bs('001000'), bs('1'), bs('1'), bs('0'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt], [rt, rn64_deref_nooff])
+aarch64op("ldarb",[bs('0'), bs('0'), bs('001000'), bs('1'), bs('1'), bs('0'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt32], [rt32, rn64_deref_nooff])
 aarch64op("ldarh",[bs('0'), bs('1'), bs('001000'), bs('0'), bs('1'), bs('0'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt], [rt, rn64_deref_nooff])
 aarch64op("ldaxp",[bs('1'), sf, bs('001000'), bs('0'), bs('1'), bs('1'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt], [rt, rn64_deref_nooff])
 aarch64op("ldaxr",[bs('1'), sf, bs('001000'), bs('0'), bs('1'), bs('0'), bs('11111'), bs('1'), bs('11111'), rn64_deref_nooff, rt], [rt, rn64_deref_nooff])
diff --git a/miasm/arch/aarch64/sem.py b/miasm/arch/aarch64/sem.py
index ce77aa2c..e7db4782 100644
--- a/miasm/arch/aarch64/sem.py
+++ b/miasm/arch/aarch64/sem.py
@@ -1341,6 +1341,8 @@ mnemo_func.update({
     'ldrsh': ldrsh,
     'ldrsw': ldrsw,
 
+    'ldarb': ldrb,
+
     'ldaxrb': ldaxrb,
     'stlxrb': stlxrb,
 
diff --git a/test/arch/aarch64/arch.py b/test/arch/aarch64/arch.py
index 70a44053..9fc6ee8e 100644
--- a/test/arch/aarch64/arch.py
+++ b/test/arch/aarch64/arch.py
@@ -1763,6 +1763,8 @@ reg_tests_aarch64 = [
      "8DFE5F88"),
     ("0046FA7C    LDAXR      X17, [X16]",
      "11FE5FC8"),
+    ("XXXXXXXX    LDARB      W0, [X20]",
+     "80FEDF08"),
     ("00464090    STLXR      W14, W2, [X20]",
      "82FE0E88"),