about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorIridiumXOR <oliveriandrea@gmail.com>2020-05-28 09:46:16 +0200
committerGitHub <noreply@github.com>2020-05-28 09:46:16 +0200
commitda89c2790ee03c591029d81752eec3110e894c38 (patch)
tree415e4ff888c08ce2c0c98b7036c416bb022616ef
parent15d2bf522e2bb3aa8e2ac491c631aa4bf594c290 (diff)
downloadmiasm-da89c2790ee03c591029d81752eec3110e894c38.tar.gz
miasm-da89c2790ee03c591029d81752eec3110e894c38.zip
Wrong conditional prefix for MRC/MCR (#1233)
* Wrong conditional prefix for MRC/MCR

Sorry, I have wrongly implemented the conditional code for MRC/MCR, now I have fix them.

* Add test units for conditional MRC/MCR
Diffstat (limited to '')
-rw-r--r--miasm/arch/arm/sem.py6
-rw-r--r--test/arch/arm/arch.py5
2 files changed, 8 insertions, 3 deletions
diff --git a/miasm/arch/arm/sem.py b/miasm/arch/arm/sem.py
index 7d72b956..027c3a6a 100644
--- a/miasm/arch/arm/sem.py
+++ b/miasm/arch/arm/sem.py
@@ -1752,6 +1752,9 @@ mnemo_condm0 = {'add': add,
                 'sdiv': sdiv,
                 'udiv': udiv,
 
+                'mrc': mrc,
+                'mcr': mcr,
+
                 'mul': mul,
                 'umull': umull,
                 'umlal': umlal,
@@ -1810,9 +1813,6 @@ mnemo_condm1 = {'adds': add,
                 'bics': bics,
                 'mvns': mvns,
 
-                'mrc': mrc,
-                'mcr': mcr,
-
                 'mrs': mrs,
                 'msr': msr,
 
diff --git a/test/arch/arm/arch.py b/test/arch/arm/arch.py
index 55b9a9c2..740655da 100644
--- a/test/arch/arm/arch.py
+++ b/test/arch/arm/arch.py
@@ -237,6 +237,11 @@ reg_tests_arm = [
      '110f11ee'),
     ('XXXXXXXX    MCR        p15, 0x0, R8, c2, c0, 0x0',
      '108f02ee'),
+    ('XXXXXXXX    MRCNE      p15, 0x0, R0, c1, c1, 0x0',
+     '110f111e'),
+    ('XXXXXXXX    MCRCC      p15, 0x0, R8, c2, c0, 0x1',
+     '308f023e'),
+
 
 ]
 ts = time.time()