diff options
| -rw-r--r-- | miasm2/arch/x86/arch.py | 2 | ||||
| -rw-r--r-- | miasm2/arch/x86/sem.py | 10 | ||||
| -rw-r--r-- | test/arch/x86/arch.py | 5 |
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"), ] |