parseinstr: Split escape and opcode
This commit is contained in:
@@ -245,7 +245,8 @@ import re
|
|||||||
opcode_regex = re.compile(
|
opcode_regex = re.compile(
|
||||||
r"^(?:(?P<prefixes>(?P<vex>VEX\.)?(?P<legacy>NP|66|F2|F3|NFx)\." +
|
r"^(?:(?P<prefixes>(?P<vex>VEX\.)?(?P<legacy>NP|66|F2|F3|NFx)\." +
|
||||||
r"(?:W(?P<rexw>[01]|IG)\.)?(?:L(?P<vexl>[01]|IG)\.)?))?" +
|
r"(?:W(?P<rexw>[01]|IG)\.)?(?:L(?P<vexl>[01]|IG)\.)?))?" +
|
||||||
r"(?P<opcode>(?:[0-9a-f]{2})+)" +
|
r"(?P<escape>(?:0f|0f38|0f3a)?)" +
|
||||||
|
r"(?P<opcode>[0-9a-f]{2})" +
|
||||||
r"(?P<modrm>//?[0-7]|//[c-f][0-9a-f])?" +
|
r"(?P<modrm>//?[0-7]|//[c-f][0-9a-f])?" +
|
||||||
r"(?P<extended>\+)?$")
|
r"(?P<extended>\+)?$")
|
||||||
|
|
||||||
@@ -275,8 +276,8 @@ class Opcode(NamedTuple):
|
|||||||
|
|
||||||
return cls(
|
return cls(
|
||||||
prefix=match.group("legacy"),
|
prefix=match.group("legacy"),
|
||||||
escape=["", "0f", "0f38", "0f3a"].index(match.group("opcode")[:-2]),
|
escape=["", "0f", "0f38", "0f3a"].index(match.group("escape")),
|
||||||
opc=int(match.group("opcode")[-2:], 16),
|
opc=int(match.group("opcode"), 16),
|
||||||
opcext=opcext,
|
opcext=opcext,
|
||||||
extended=match.group("extended") is not None,
|
extended=match.group("extended") is not None,
|
||||||
vex=match.group("vex") is not None,
|
vex=match.group("vex") is not None,
|
||||||
|
|||||||
Reference in New Issue
Block a user