about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2019-02-05 23:37:54 +0100
committerGitHub <noreply@github.com>2019-02-05 23:37:54 +0100
commit5cfdeb7ab8d889232044bb93f2505cfb23c4f92f (patch)
tree29903f4208266f342c4f0aac55dc4c6788acb9ba
parentca6cdc24302fd065b0bdde41573ffe077c5ddcaf (diff)
parent4b9858ef4fef46f730a55ec2fdca1211078153c8 (diff)
downloadmiasm-5cfdeb7ab8d889232044bb93f2505cfb23c4f92f.tar.gz
miasm-5cfdeb7ab8d889232044bb93f2505cfb23c4f92f.zip
Merge pull request #960 from WilliamBruneau/add_endbr
Add ENDBR64 and ENDBR32 instructions
-rw-r--r--miasm2/arch/x86/arch.py2
-rw-r--r--miasm2/arch/x86/sem.py10
-rw-r--r--test/arch/x86/arch.py5
3 files changed, 17 insertions, 0 deletions
diff --git a/miasm2/arch/x86/arch.py b/miasm2/arch/x86/arch.py
index 7f9d50e6..ef7b9ef6 100644
--- a/miasm2/arch/x86/arch.py
+++ b/miasm2/arch/x86/arch.py
@@ -4607,6 +4607,8 @@ addop("maskmovdqu", [bs8(0x0f), bs8(0xf7), pref_66] +
 
 addop("emms", [bs8(0x0f), bs8(0x77)])
 
+addop("endbr64", [pref_f3, bs8(0x0f), bs8(0x1e), bs8(0xfa)])
+addop("endbr32", [pref_f3, bs8(0x0f), bs8(0x1e), bs8(0xfb)])
 
 mn_x86.bintree = factor_one_bit(mn_x86.bintree)
 # mn_x86.bintree = factor_fields_all(mn_x86.bintree)
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py
index 862240e5..aa3da43d 100644
--- a/miasm2/arch/x86/sem.py
+++ b/miasm2/arch/x86/sem.py
@@ -4938,6 +4938,14 @@ def emms(ir, instr):
     # Implemented as a NOP
     return [], []
 
+def endbr64(ir, instr):
+    # Implemented as a NOP
+    return [], []
+
+def endbr32(ir, instr):
+    # Implemented as a NOP
+    return [], []
+
 # Common value without too many option, 0x1fa0
 STMXCSR_VALUE = 0x1fa0
 def stmxcsr(ir, instr, dst):
@@ -5584,6 +5592,8 @@ mnemo_func = {'mov': mov,
               "movmskpd": movmskpd,
               "stmxcsr": stmxcsr,
               "ldmxcsr": ldmxcsr,
+              "endbr64": endbr64,
+              "endbr32": endbr32,
               }
 
 
diff --git a/test/arch/x86/arch.py b/test/arch/x86/arch.py
index b866a325..36d6c2c8 100644
--- a/test/arch/x86/arch.py
+++ b/test/arch/x86/arch.py
@@ -3093,6 +3093,11 @@ reg_tests = [
 
     (m32, "00000000    EMMS",
      "0f77"),
+
+    (m64, "00000000    ENDBR64",
+     "f30f1efa"),
+    (m32, "00000000    ENDBR32",
+     "f30f1efb"),
 ]