diff --git a/docs/_sources/changelog.rst.txt b/docs/_sources/changelog.rst.txt index 6828866..4bd2a22 100644 --- a/docs/_sources/changelog.rst.txt +++ b/docs/_sources/changelog.rst.txt @@ -2,6 +2,12 @@ Changelog ############################ +**************************** +0.1.1 (2024-01-13) +**************************** + +Support Python 3.11. + **************************** 0.1 (2020-09-27) **************************** diff --git a/docs/changelog.html b/docs/changelog.html index 73a7313..c0678e7 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -81,7 +81,11 @@

Changelog

-

0.1 (2020-09-27)

+

0.1.1 (2024-01-13)

+

Support Python 3.11.

+
+
+

0.1 (2020-09-27)

Initial release.

Major Issues

diff --git a/docs/dev_modules.html b/docs/dev_modules.html index d2dcfcc..68d6361 100644 --- a/docs/dev_modules.html +++ b/docs/dev_modules.html @@ -1482,7 +1482,7 @@

Internal modules and members

__version__

-mcdecoder.__version__.__version__ = '0.1'
+mcdecoder.__version__.__version__ = '0.1.1'

Current version of mcdecoder

diff --git a/docs/searchindex.js b/docs/searchindex.js index cd1b157..30ecae3 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "changelog", "dev_coding_style", "dev_coding_style_c", "dev_coding_style_cpp", "dev_coding_style_python", "dev_design", "dev_docs", "dev_guides", "dev_modules", "guides", "index", "quickstart", "spec_commandline_options", "spec_limit", "spec_mc_desc", "spec_mcdecoder_api", "spec_mcdecoder_model", "spec_template_var", "specifications", "user_templates", "version"], "filenames": ["README.rst", "changelog.rst", "dev_coding_style.rst", "dev_coding_style_c.rst", "dev_coding_style_cpp.rst", "dev_coding_style_python.rst", "dev_design.rst", "dev_docs.rst", "dev_guides.rst", "dev_modules.rst", "guides.rst", "index.rst", "quickstart.rst", "spec_commandline_options.rst", "spec_limit.rst", "spec_mc_desc.rst", "spec_mcdecoder_api.rst", "spec_mcdecoder_model.rst", "spec_template_var.rst", "specifications.rst", "user_templates.rst", "version.rst"], "titles": ["README: mcdecoder", "Changelog", "Coding style", "C coding style", "C++ coding style", "Python coding style", "Internal design", "Documents for mcdecoder developers", "Developer guides", "Internal modules and members", "User guides", "The mcdecoder documentation", "Quickstart tutorial", "Command line option specification", "Limitations", "MC description specification", "MC decoder API specification", "MC decoder model specification", "Template variable specification", "Specifications", "User templates", "Versioniong policy"], "terms": {"The": [0, 3, 4, 5, 8, 9, 13, 14, 15, 17, 20, 21], "machin": [0, 9, 12, 13, 17, 18, 19, 20], "code": [0, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "decod": [0, 6, 7, 9, 10, 11, 13, 14, 18, 19, 20], "set": [0, 8, 9, 17], "tool": [0, 3, 4, 8], "implement": [0, 6, 9], "It": [0, 6, 9, 12, 15, 17], "includ": [0, 6, 9, 12, 13, 16, 20], "gener": [0, 3, 4, 6, 7, 10, 14, 15, 17, 18], "user": [0, 6, 9, 11, 12, 13, 14, 15, 17, 18], "defin": [0, 6, 9, 10, 12, 13, 14, 15, 17, 18], "specif": [0, 6, 9, 11, 12, 20, 21], "emul": [0, 6, 7, 12], "binari": [0, 9, 13], "data": [0, 9, 10, 13, 15, 17, 18], "show": [0, 6, 13], "result": [0, 6, 9, 12, 15, 16, 17], "check": [0, 6, 8, 9, 10, 20], "integr": [0, 6, 9, 12], "etc": [0, 3, 4, 6, 9, 14, 15], "current": [0, 9, 13], "onli": [0, 6, 9, 13, 14], "c": [0, 2, 6, 7, 8, 10, 13, 14, 20], "languag": [0, 3, 12, 14], "your": [0, 12, 20], "arm": [0, 15, 20], "yaml": [0, 12, 13, 15, 20], "byteord": [0, 9, 12, 13, 17, 20], "littl": [0, 9, 12, 13, 14, 15, 17, 20], "instruct": [0, 9, 10, 13, 14, 16, 17, 18, 19, 20], "name": [0, 5, 9, 12, 16, 17, 18, 19, 20], "add_immediate_a1": [0, 12], "format": [0, 6, 9, 12, 13, 20], "xxxx": [0, 12, 15, 20], "cond": [0, 12, 15, 16, 20], "00": [0, 12, 15, 20], "1": [0, 9, 10, 13, 15, 17, 18], "0100": [0, 12, 13, 15, 20], "x": [0, 8, 9, 12, 13, 15, 20], "": [0, 9, 10, 13, 15, 16, 17], "rn": [0, 12, 15, 20], "rd": [0, 12, 15, 20], "imm12": [0, 12, 15, 20], "us": [0, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 17, 20, 21], "from": [0, 3, 9, 10, 13, 15, 21], "client": [0, 10], "const": [0, 12, 16, 20], "uint8_t": [0, 12, 16], "kmachinecod": [0, 12], "0x04": [0, 12], "0xb0": [0, 12], "0x8d": [0, 12], "0xe2": [0, 12], "decoderequest": [0, 3, 4, 12, 16], "request": [0, 12, 16], "decoderesult": [0, 12, 16], "bool": [0, 9, 12, 16], "succeed": [0, 9, 12, 16], "0": [0, 6, 8, 9, 12, 13, 15, 16, 17, 18, 20, 21], "decodeinstruct": [0, 3, 4, 12, 16], "follow": [0, 3, 12, 13, 15, 20, 21], "step": [0, 12, 20], "below": [0, 12, 14, 15, 20], "go": 0, "tutori": [0, 6, 10, 11, 20], "cpu": 0, "To": [0, 3, 4, 20], "part": [0, 3, 4, 15, 21], "an": [0, 3, 6, 8, 9, 10, 13, 15, 16, 17], "static": 0, "analyz": 0, "learner": 0, "basic": 0, "hand": 0, "approach": 0, "learn": 0, "write": [0, 10], "test": [0, 6, 7, 9, 12, 15, 17], "actual": 0, "maintain": 0, "ar": [0, 3, 4, 6, 8, 9, 12, 13, 14, 15, 17, 20, 21], "tough": 0, "cumbersom": 0, "sooth": 0, "pain": 0, "wa": 0, "origin": [0, 3, 4, 5], "athril": [0, 13], "now": [0, 12], "independ": 0, "python": [0, 2, 6, 7, 8, 15], "3": [0, 8, 10, 15], "8": [0, 8, 14, 15], "pip": [0, 5, 8], "python3": [0, 8], "m": [0, 8, 9], "mit": 0, "see": [0, 3, 4, 5, 12, 15, 18, 20], "document": [0, 6, 20], "initi": 1, "releas": [1, 8, 15, 21], "none": [1, 9, 15, 17], "except": [2, 9], "rule": 2, "addit": [2, 8, 9, 12, 19, 20], "mcdecod": [3, 4, 5, 9, 10, 12, 13, 15, 16, 17, 18, 20, 21], "i": [3, 4, 5, 6, 9, 10, 13, 15, 16, 17, 20, 21], "base": [3, 4, 5, 6, 8, 9, 13, 15, 17], "googl": [3, 4, 5, 6, 12], "guid": [3, 4, 5, 7, 11, 12], "add": [3, 4, 5, 10], "some": [3, 4, 5, 9, 20, 21], "modif": [3, 4, 5], "becaus": [3, 4, 5], "For": [3, 4, 8, 10, 12], "type": [3, 4, 9, 13, 15, 17, 18, 19, 20], "constant": [3, 4, 20], "function": [3, 4, 6, 9, 12, 15, 17, 19], "thi": [3, 4, 5, 6, 9, 12, 13, 14, 15, 17, 20], "project": [3, 4, 5, 6], "you": [3, 4, 5, 8, 12, 14, 15, 20], "can": [3, 4, 5, 12, 14, 15, 20], "underscor": [3, 4], "split": [3, 4, 15], "namespac": [3, 9, 16, 17, 18, 20], "_": [3, 4, 20], "option": [3, 4, 6, 11, 12, 15, 19, 20], "exampl": [3, 4, 6, 10, 15, 16, 20], "arm_decoderesult": 3, "decoderequest_add": 3, "riscv_decoderesult_push": 3, "kinstructionidmax": [3, 4], "arm_kdecodeerrorsmax": 3, "kinstructionidmax_add": 3, "riscv_kdecodeerrorsmax_push": 3, "arm_printinstruct": 3, "decodeinstruction_add": 3, "riscv_printinstruction_push": 3, "instructionid": [3, 4, 16], "arm_decodeerror": 3, "instructionid_add": 3, "riscv_decodeerrors_push": 3, "instructionid_kunknown": [3, 12, 16], "arm_decodeerrors_kok": 3, "instructionid_k_add": 3, "riscv_decodeerrors_k_push": 3, "With": [3, 4], "rational": [3, 4, 5], "There": 3, "reason": 3, "support": [3, 9, 12, 13, 14, 15, 17, 20], "doesn": 3, "t": [3, 9, 15, 17, 20], "so": [3, 5, 6, 20], "we": [3, 4, 8, 12], "prefix": [3, 9, 17, 18, 20], "separ": [3, 15], "among": 3, "symbol": [3, 4, 9, 15], "clarifi": [3, 4], "boundari": [3, 4], "between": [3, 4, 5, 15], "fix": [3, 4, 6, 9, 15, 17, 21], "put": [3, 4, 15, 20], "them": [3, 4], "also": [3, 4, 5, 6, 15], "enumeration_typ": 3, "decodeerrors_kok": 3, "lead": 3, "k": 3, "qualifi": 3, "specifi": [3, 5, 9, 15, 20], "correct": 3, "ambigu": 3, "127": 3, "charact": [3, 9, 13, 15], "maximum": 3, "80": 3, "too": 3, "short": 3, "make": [3, 6, 8, 9, 12, 20], "vertic": 3, "longer": 3, "less": [3, 9, 15], "readabl": [3, 15], "my": 3, "opinion": 3, "should": [3, 6, 9, 12], "target": [3, 9], "c11": [3, 14], "e": [3, 8, 12], "c18": 3, "featur": [3, 6, 15, 21], "portabl": 3, "environ": [3, 5, 7], "abov": [3, 8], "api": [3, 4, 11, 12, 13, 19], "other": [3, 4, 12, 13, 14, 15], "identifi": [3, 16], "doxygen": [3, 4], "enumer": [4, 16], "decoderesult_add": 4, "kdecodeerrorsmax": 4, "printinstruction_add": 4, "decodeerrors_add": 4, "kunknown": 4, "k_add": 4, "either": 4, "syntax": [4, 20], "Be": 4, "consist": [4, 15], "how": [4, 7, 12], "what": [4, 10], "where": [4, 15, 16], "much": 4, "more": [4, 6, 10, 12, 20], "common": [4, 6, 7], "tell": 4, "differ": [4, 15], "easili": 4, "develop": [5, 10, 11], "rel": 5, "modul": [5, 7, 11], "same": [5, 9, 12, 15, 20], "packag": [5, 8], "do": [5, 8], "even": 5, "full": 5, "help": 5, "prevent": 5, "unintention": 5, "twice": 5, "pyright": 5, "cannot": 5, "resolv": 5, "conflict": 5, "directori": [5, 8, 9, 13, 15, 20], "those": [5, 20], "must": [5, 9, 12, 14, 15, 17, 20], "descript": [6, 9, 10, 11, 13, 18, 19], "__main__": [6, 7], "entrypoint": 6, "app": [6, 7, 12], "workflow": [6, 9], "pars": [6, 9], "command": [6, 9, 11, 12, 19, 20], "line": [6, 9, 11, 12, 19, 20], "dispatch": 6, "each": [6, 9, 12, 15, 17, 21], "sub": [6, 9, 12, 19], "accord": [6, 12, 13], "templat": [6, 9, 10, 11, 12, 13, 14, 19], "export": [6, 7, 12], "mc": [6, 9, 10, 11, 13, 18, 19], "return": [6, 9, 12, 16], "checker": [6, 7], "vector": [6, 9], "calcul": [6, 9], "perform": 6, "core": [6, 7, 15, 17], "provid": 6, "valid": [6, 9, 13], "against": [6, 9, 21], "schema": [6, 9, 19], "creat": [6, 8, 9, 10, 12], "instanc": 6, "model": [6, 9, 11, 18, 19, 20], "util": 6, "__version__": [6, 7], "version": [6, 9, 10, 13, 15, 17, 18], "number": [6, 9, 13, 16, 17, 21], "its": [6, 9, 12, 15, 17], "If": [6, 8, 9, 12, 15, 20, 21], "multipl": [6, 12, 14, 15], "requir": [6, 7, 10], "certain": [6, 12, 13, 14], "strongli": 6, "relat": [6, 9, 15, 17], "like": [6, 12, 15, 20], "convert": [6, 9], "integ": [6, 9, 15, 16], "valu": [6, 9, 12, 15, 17], "sever": [6, 15], "consid": 6, "doe": [6, 9, 14, 15], "billion": 6, "all": [6, 8, 9, 12, 15], "have": [6, 8, 9, 12, 14, 17, 20], "shell": 6, "script": 6, "run": [6, 7, 9, 10, 14, 20], "automat": 6, "setuptool": 6, "jinja2": [6, 20], "json": [6, 15], "grammar": [6, 12], "lark": 6, "pyyaml": 6, "load": [6, 9], "jsonschema": 6, "numpi": 6, "improv": [6, 21], "deprec": [6, 9, 10, 13, 17, 18], "warn": 6, "about": [6, 10, 12, 18, 20], "pytest": [6, 8], "unit": 6, "cov": [6, 8], "measur": 6, "coverag": [6, 8], "behav": 6, "boost": 6, "cucumb": 6, "cpp": 6, "bundler": [6, 8], "v2": 6, "cmake": [6, 8], "build": [6, 7], "fetch": 6, "sphinx": 6, "argpars": 6, "read": 6, "doc": 6, "theme": 6, "usabl": 6, "graphviz": [6, 8], "diagram": 6, "content": [6, 12, 15, 20], "publish": 6, "github": [6, 8, 11, 12, 15, 20], "page": 6, "src": [6, 8, 15], "sourc": [6, 8], "src_doc": [6, 8], "rst": 6, "both": 6, "mainli": 6, "branch": 7, "polici": [7, 10, 11], "setup": 7, "intern": [7, 11], "design": [7, 11, 20], "runtim": 7, "member": [7, 11], "style": [7, 11], "ubuntu": 8, "20": [8, 12, 15], "venv": 8, "recommend": 8, "rubi": 8, "rubygem": 8, "header": 8, "file": [8, 9, 10, 12, 13, 15], "dev": 8, "simplic": [8, 12], "master": 8, "unstabl": 8, "stabl": 8, "mark": [8, 21], "tag": 8, "need": [8, 12, 20], "pleas": 8, "out": [8, 12, 13, 20], "one": [8, 9, 14, 15], "instal": [8, 10], "platform": 8, "sudo": 8, "apt": 8, "libgtest": 8, "libboost": 8, "nlohmann": 8, "json3": 8, "libasio": 8, "libtclap": 8, "clone": 8, "git": 8, "http": 8, "com": 8, "wildlarva": 8, "virtual": 8, "switch": [8, 12, 16], "cd": 8, "env": 8, "bin": 8, "activ": 8, "librari": 8, "r": 8, "txt": 8, "gem": 8, "bundl": 8, "config": [8, 15], "local": 8, "path": [8, 9, 13, 15], "after": 8, "chang": [8, 15, 21], "immedi": [8, 9, 15, 17, 20], "reflect": 8, "without": [8, 16], "report": 8, "htmlcov": 8, "html": 8, "b": 8, "ctest": 8, "clean": 8, "appli": [8, 9, 15, 17], "main": [9, 12], "int": [9, 12, 17], "entri": 9, "point": 9, "exit": [9, 13], "run_app": 9, "argv": 9, "list": [9, 15, 17], "str": [9, 17], "applic": 9, "execut": [9, 12], "correspond": [9, 13], "paramet": [9, 16], "mcfile": [9, 13], "template_directori": 9, "output_directori": 9, "default": [9, 12, 13], "c_decod": [9, 13], "output": [9, 12, 13, 20], "output_fil": 9, "anoth": [9, 13, 15], "note": [9, 13, 15], "csv": [9, 12, 13], "bit_pattern": 9, "liter": [9, 17], "2": [9, 10, 13, 15, 21], "16": [9, 12, 13, 14, 15], "big": [9, 13, 15, 17], "endian": [9, 13, 14, 15], "hex": [9, 13], "string": [9, 13, 15, 17, 18], "express": [9, 10, 17], "byte": [9, 13, 15, 17], "order": [9, 13, 15, 17], "error": [9, 15], "bit": [9, 12, 14, 15, 17], "pattern": [9, 12, 13, 14, 15], "input": [9, 12, 13, 16], "class": [9, 17], "andidcondit": [9, 17], "condit": [9, 12, 19], "instructiondecodercondit": [9, 17], "subclass": [9, 17], "combin": [9, 15, 17], "AND": [9, 17], "oper": [9, 15, 17], "child": [9, 17], "logic": [9, 15, 17], "properti": [9, 15, 17], "alwai": [9, 17], "bitrangedescript": 9, "start": [9, 15, 17], "end": [9, 15, 17], "object": [9, 15, 17], "rang": [9, 13, 17], "lsb": [9, 12, 15, 17], "msb": [9, 12, 15, 17], "decodecontext": 9, "code16x1": 9, "code16x2": 9, "code32x1": 9, "context": 9, "inform": [9, 12, 15, 18, 20], "while": 9, "non": 9, "word": [9, 15], "32": [9, 14], "decodecontextvector": 9, "code16x1_vec": 9, "ndarrai": 9, "code16x2_vec": 9, "code32x1_vec": 9, "length": [9, 14, 17], "n": [9, 12, 15, 16, 17, 18, 20], "equalityidcondit": [9, 17], "subject": [9, 15, 17], "instructiondecoderconditionobject": [9, 17], "equal": [9, 17], "field": [9, 12, 15, 16, 17, 20], "equalityinstructionconditiondescript": 9, "instructionconditionobjectdescript": 9, "instructionconditiondescript": 9, "fieldidconditionobject": [9, 17], "element_index": [9, 17], "element": [9, 12, 15, 17, 18], "index": [9, 11, 15, 17], "fieldinstructionconditionobjectdescript": 9, "functionidconditionobject": [9, 17], "argument": [9, 15, 17, 19], "call": [9, 12, 15, 17, 20], "functioninstructionconditionobjectdescript": 9, "immediateidconditionobject": [9, 17], "immediateinstructionconditionobjectdescript": 9, "inidcondit": [9, 17], "ininstructionconditiondescript": 9, "inrangeidcondit": [9, 17], "value_start": [9, 15, 17], "value_end": [9, 15, 17], "in_rang": [9, 15, 17], "inclus": [9, 15, 17], "inrangeinstructionconditiondescript": 9, "instructiondecoderesult": 9, "instructiondecod": [9, 15, 17, 18], "instructionfielddecoderesult": 9, "field_result": 9, "sinc": [9, 17], "1a6": [9, 17], "remov": [9, 13, 17, 18, 21], "instead": [9, 17], "encoding_element_bit_length": [9, 17], "length_of_encoding_el": [9, 17], "fixed_bit_mask": [9, 17], "fixed_bit": [9, 17], "type_bit_length": [9, 17], "match_condit": [9, 17], "unmatch_condit": [9, 17], "instructionfielddecod": [9, 17], "extra": [9, 17, 18, 19, 20], "ani": [9, 15, 17, 18, 20], "_encod": [9, 17], "encod": [9, 10, 14, 15, 17], "field_decod": [9, 17], "mask": [9, 17], "posit": [9, 17, 19], "fixed_bits_mask": [9, 17], "satisfi": [9, 17], "type_bit_s": [9, 17], "when": [9, 13, 15, 17, 21], "attribut": [9, 15, 17, 20], "abstract": [9, 17], "instructiondescript": 9, "arg": 9, "kwarg": 9, "dict": [9, 17], "describ": [9, 15], "contain": [9, 20], "field_extra": [9, 20], "instructionencodingdescript": 9, "instructionencodingelementdescript": 9, "instructionfieldencodingdescript": 9, "subfield": [9, 15, 17], "instructionsubfielddecod": [9, 17], "_msb": [9, 17], "subfield_decod": [9, 17], "bits_format": 9, "bit_rang": 9, "msb_in_instruct": [9, 17], "lsb_in_instruct": [9, 17], "lsb_in_field": [9, 17], "end_bit_in_field": [9, 17], "end_bit_in_instruct": [9, 17], "0th": [9, 17], "th": [9, 17], "start_bit_in_instruct": [9, 17], "loaderror": 9, "messag": 9, "rais": 9, "occur": 9, "explan": 9, "logicalinstructionconditiondescript": 9, "machinedecod": [9, 17, 18], "machinedescript": 9, "namespace_prefix": [9, 17, 18], "decision_tre": [9, 17], "mcddecisiontre": [9, 17], "itself": [9, 17], "root": [9, 17, 18], "instruction_decod": [9, 17, 18, 20], "machine_decod": [9, 17, 18], "mcdecoderdescript": 9, "isn": [9, 15, 17], "process_instruction_hook": 9, "hook": [9, 15], "process": [9, 15], "mcdescript": 9, "mcddecisionnod": [9, 17], "fixed_bit_nod": [9, 17], "arbitrary_bit_nod": [9, 17], "node": [9, 17], "ha": [9, 17], "two": [9, 17], "A": [9, 13, 15, 17, 21], "decid": [9, 17], "threshold": [9, 17], "arbitrari": [9, 17], "pass": [9, 17], "through": [9, 17], "all_nod": [9, 17], "iter": [9, 17], "descend": [9, 17], "wai": [9, 17, 20], "depth": [9, 17], "first": [9, 17, 20], "search": [9, 17], "dictionari": [9, 17], "tree": [9, 19], "root_nod": [9, 17], "decis": [9, 19], "find": [9, 14, 17], "match": [9, 12, 14, 16, 17], "oridcondit": [9, 17], "OR": [9, 17], "calc_instruction_bit_s": 9, "instruction_encod": 9, "create_mcdecoder_model": 9, "which": [9, 12, 13, 14, 15, 16], "invalid": 9, "inconsist": 9, "decode_instruct": 9, "find_matched_instruct": 9, "given": [9, 15], "find_matched_instructions_vector": 9, "instructin": 9, "matrix": 9, "hold": [9, 15], "boolean": 9, "whether": 9, "load_mc_descript": 9, "parse_instruction_encod": 9, "bit_length_of_charact": 9, "convert_to_big_endian": 9, "convers": 9, "taken": [9, 21], "place": [9, 15, 21], "make_mask": 9, "bit_siz": 9, "make_parent_directori": 9, "parent": 9, "true": [9, 16], "fals": [9, 15, 16], "otherwis": [9, 16], "pad_trailing_zero": 9, "expected_bit_s": 9, "pad": 9, "trail": 9, "zero": 9, "than": [9, 15, 20], "align": 9, "ad": [9, 21], "expect": 9, "size": 9, "string_length_for_byt": 9, "trim_whitespac": 9, "trim": 9, "whitespac": 9, "readm": [10, 11], "quickstart": [10, 11], "who": 10, "licens": 10, "detail": [10, 12, 20], "usag": [10, 13, 19, 20], "introduc": 10, "work": 10, "4": [10, 15], "5": [10, 15], "next": [10, 21], "versioniong": [10, 11], "variabl": [11, 19, 20], "limit": [11, 19], "changelog": 11, "back": 11, "In": 12, "ll": 12, "ignor": 12, "g": 12, "0b1111": [12, 15], "here": [12, 15, 16, 20], "31": 12, "30": [12, 15], "29": 12, "28": 12, "27": 12, "26": 12, "25": 12, "24": [12, 14], "23": 12, "22": 12, "21": 12, "19": 12, "18": 12, "17": 12, "15": [12, 15], "14": [12, 15], "13": [12, 15], "12": 12, "11": [12, 15], "10": [12, 15, 20], "09": 12, "08": 12, "07": 12, "06": 12, "05": 12, "04": 12, "03": 12, "02": 12, "01": [12, 15], "register_list": [12, 15, 16, 20], "sequenc": [12, 15, 18], "befor": [12, 15], "understand": [12, 18, 20], "push_a1": 12, "1001": [12, 13, 15, 20], "1101": [12, 13, 15, 20], "minimum": 12, "let": 12, "behavior": [12, 15], "e28db004": 12, "mean": [12, 21], "fp": 12, "sp": 12, "assembli": 12, "r13": 12, "r11": 12, "Its": 12, "0xe": 12, "0b1110": 12, "0x0": 12, "0b0": 12, "0xd": 12, "0b1101": 12, "0xb": 12, "0b1011": 12, "0x4": 12, "0b100": 12, "fine": 12, "look": 12, "d": [12, 16], "get": [12, 16], "h": [12, 13, 16, 20], "did": 12, "stdio": 12, "void": 12, "printf": [12, 16], "fail": 12, "els": [12, 20], "instruction_id": [12, 16], "case": [12, 14, 16, 21], "instructionid_k_add_immediate_a1": 12, "nrd": 12, "nimm12": 12, "break": [12, 16], "instructionid_k_push_a1": 12, "handl": [12, 16], "unknown": [12, 16], "compil": [12, 15, 20], "gcc": [12, 15, 20], "good": 12, "coincid": 12, "over": 12, "glanc": 12, "view": 12, "filter": 12, "spreadsheet": 12, "excel": 12, "own": [12, 20], "custom": 12, "toolset": 13, "possibl": 13, "choic": 13, "program": [13, 14], "templatedir": 13, "outdir": 13, "standard": [13, 14], "gerer": 13, "directoi": 13, "user_templ": 13, "outfil": 13, "indata": 13, "e92d4800": 13, "1110": 13, "0010": 13, "1000": 13, "0000": 13, "00482de9": 13, "act": 13, "wildcard": [13, 15], "f": 13, "detect": 13, "problem": 13, "No": [13, 20], "duplic": 13, "092d4800": 13, "f92d4800": 13, "x92d4800": 13, "1010": 13, "1x10": 13, "002d4800": 13, "ff2d4800": 13, "xx2d4800": 13, "howev": 14, "host": 14, "comput": 14, "64": 14, "arch_typ": [15, 20], "add_1": [15, 20], "clock": [15, 20], "regist": [15, 20], "global": [15, 18, 20], "scope": [15, 18, 20], "process_instruct": 15, "structur": [15, 20], "map": 15, "repres": 15, "One": 15, "construct": 15, "imm": 15, "000": 15, "funct3": 15, "dest": 15, "xxx": 15, "xx": 15, "op": 15, "offset": 15, "adjac": 15, "111": 15, "6": 15, "field_bit": 15, "field_nam": 15, "field_bit_rang": 15, "bar": 15, "thei": [15, 20, 21], "re": 15, "doubl": 15, "slash": 15, "take": [15, 20], "arrai": 15, "time": [15, 20], "subfield_start": 15, "subfield_end": 15, "comma": 15, "These": 15, "group": 15, "just": 15, "15th": 15, "count": 15, "setbit_count": 15, "0xf": 15, "explain": 15, "togeth": 15, "field_object": 15, "function_object": 15, "field_element_index": 15, "mutual": 15, "exclus": 15, "kei": 15, "40": 15, "experiment": 15, "form": 15, "might": 15, "futur": 15, "py": 15, "yoo": 15, "signatur": 15, "def": 15, "name_of_hook_funct": 15, "import": 15, "extra_valu": 15, "extra_attribut": 15, "anywher": 15, "insert": 15, "depend": 15, "produc": 15, "scalar": 15, "mixtur": 15, "prompt": 15, "_instruct": 15, "add_instruct": 15, "push_instruct": 15, "push_1": [15, 20], "asterisk": 15, "term": 15, "enum": [15, 16], "additionalproperti": 15, "item": 15, "za": 15, "z": 15, "z0": 15, "9_": 15, "u0020": 15, "u0009": 15, "u000a": 15, "u000d": 15, "patternproperti": 15, "kcode": 16, "0x00": 16, "0x48": 16, "0x2d": 16, "0xe9": 16, "instructionid_k_push": 16, "push": 16, "struct": 16, "id": 16, "union": 16, "instructiondecoderesult_": 16, "instructionid_k_": 16, "appropri": 16, "unsign": 16, "uint16_t": 16, "uint32_t": 16, "instruction_id_max": 16, "shorthand": 18, "overview": 19, "macro": 19, "tabl": 20, "allow": 20, "mai": 20, "don": 20, "skip": 20, "second": 20, "access": 20, "architectur": 20, "inst": 20, "exist": 20, "field_reg_type_": 20, "endif": 20, "endfor": 20, "extern": 20, "uint8": 20, "final": 20, "And": 20, "arm_const": 20, "field_reg_type_add_1_rn": 20, "field_reg_type_add_1_rd": 20, "field_reg_type_add_1_imm12": 20, "regular": 21, "major": 21, "minor": 21, "micro": 21, "increas": 21, "signific": 21, "made": 21, "under": 21, "evalu": 21, "real": 21, "bug": 21}, "objects": {"": [[16, 0, 1, "c.DecodeInstruction", "DecodeInstruction"], [16, 2, 1, "c.DecodeRequest", "DecodeRequest"], [16, 2, 1, "c.DecodeResult", "DecodeResult"], [16, 3, 1, "c.INSTRUCTION_ID_MAX", "INSTRUCTION_ID_MAX"], [16, 5, 1, "c.InstructionId", "InstructionId"], [16, 6, 1, "c.InstructionId.InstructionId_kUnknown", "InstructionId_kUnknown"]], "DecodeInstruction": [[16, 1, 1, "c.DecodeInstruction", "request"], [16, 1, 1, "c.DecodeInstruction", "result"]], "DecodeRequest": [[16, 3, 1, "c.DecodeRequest.codes", "codes"]], "DecodeResult": [[16, 4, 1, "c.DecodeResult.instruction", "instruction"], [16, 3, 1, "c.DecodeResult.instruction_id", "instruction_id"]], "InstructionId": [[16, 6, 1, "c.InstructionId.InstructionId_kUnknown", "InstructionId_kUnknown"]], "mcdecoder": [[9, 7, 0, "-", "__main__"], [9, 7, 0, "-", "__version__"], [9, 7, 0, "-", "app"], [9, 7, 0, "-", "checker"], [9, 7, 0, "-", "common"], [9, 7, 0, "-", "core"], [9, 7, 0, "-", "emulator"], [9, 7, 0, "-", "exporter"], [9, 7, 0, "-", "generator"]], "mcdecoder.__main__": [[9, 8, 1, "", "main"]], "mcdecoder.__version__": [[9, 9, 1, "", "__version__"]], "mcdecoder.app": [[9, 8, 1, "", "run_app"]], "mcdecoder.checker": [[9, 8, 1, "", "check"]], "mcdecoder.common": [[9, 8, 1, "", "bit_length_of_character"], [9, 8, 1, "", "convert_to_big_endian"], [9, 8, 1, "", "make_mask"], [9, 8, 1, "", "make_parent_directories"], [9, 8, 1, "", "pad_trailing_zeros"], [9, 8, 1, "", "string_length_for_byte"], [9, 8, 1, "", "trim_whitespace"]], "mcdecoder.core": [[9, 10, 1, "", "AndIdCondition"], [9, 10, 1, "", "BitRangeDescription"], [9, 10, 1, "", "DecodeContext"], [9, 10, 1, "", "DecodeContextVectorized"], [9, 10, 1, "", "EqualityIdCondition"], [9, 10, 1, "", "EqualityInstructionConditionDescription"], [9, 10, 1, "", "FieldIdConditionObject"], [9, 10, 1, "", "FieldInstructionConditionObjectDescription"], [9, 10, 1, "", "FunctionIdConditionObject"], [9, 10, 1, "", "FunctionInstructionConditionObjectDescription"], [9, 10, 1, "", "ImmediateIdConditionObject"], [9, 10, 1, "", "ImmediateInstructionConditionObjectDescription"], [9, 10, 1, "", "InIdCondition"], [9, 10, 1, "", "InInstructionConditionDescription"], [9, 10, 1, "", "InRangeIdCondition"], [9, 10, 1, "", "InRangeInstructionConditionDescription"], [9, 10, 1, "", "InstructionConditionDescription"], [9, 10, 1, "", "InstructionConditionObjectDescription"], [9, 10, 1, "", "InstructionDecodeResult"], [9, 10, 1, "", "InstructionDecoder"], [9, 10, 1, "", "InstructionDecoderCondition"], [9, 10, 1, "", "InstructionDecoderConditionObject"], [9, 10, 1, "", "InstructionDescription"], [9, 10, 1, "", "InstructionEncodingDescription"], [9, 10, 1, "", "InstructionEncodingElementDescription"], [9, 10, 1, "", "InstructionFieldDecodeResult"], [9, 10, 1, "", "InstructionFieldDecoder"], [9, 10, 1, "", "InstructionFieldEncodingDescription"], [9, 10, 1, "", "InstructionSubfieldDecoder"], [9, 13, 1, "", "LoadError"], [9, 10, 1, "", "LogicalInstructionConditionDescription"], [9, 10, 1, "", "MachineDecoder"], [9, 10, 1, "", "MachineDescription"], [9, 10, 1, "", "McDecoder"], [9, 10, 1, "", "McDecoderDescription"], [9, 10, 1, "", "McDescription"], [9, 10, 1, "", "McdDecisionNode"], [9, 10, 1, "", "McdDecisionTree"], [9, 10, 1, "", "OrIdCondition"], [9, 8, 1, "", "calc_instruction_bit_size"], [9, 8, 1, "", "create_mcdecoder_model"], [9, 8, 1, "", "decode_instruction"], [9, 8, 1, "", "find_matched_instructions"], [9, 8, 1, "", "find_matched_instructions_vectorized"], [9, 8, 1, "", "load_mc_description"], [9, 8, 1, "", "parse_instruction_encoding"]], "mcdecoder.core.AndIdCondition": [[9, 11, 1, "", "conditions"], [9, 12, 1, "", "type"]], "mcdecoder.core.BitRangeDescription": [[9, 11, 1, "", "end"], [9, 11, 1, "", "start"]], "mcdecoder.core.DecodeContext": [[9, 11, 1, "", "code16x1"], [9, 11, 1, "", "code16x2"], [9, 11, 1, "", "code32x1"], [9, 11, 1, "", "mcdecoder"]], "mcdecoder.core.DecodeContextVectorized": [[9, 11, 1, "", "code16x1_vec"], [9, 11, 1, "", "code16x2_vec"], [9, 11, 1, "", "code32x1_vec"], [9, 11, 1, "", "mcdecoder"]], "mcdecoder.core.EqualityIdCondition": [[9, 11, 1, "", "object"], [9, 11, 1, "", "operator"], [9, 11, 1, "", "subject"], [9, 12, 1, "", "type"]], "mcdecoder.core.EqualityInstructionConditionDescription": [[9, 11, 1, "", "object"], [9, 11, 1, "", "operator"], [9, 11, 1, "", "subject"]], "mcdecoder.core.FieldIdConditionObject": [[9, 11, 1, "", "element_index"], [9, 11, 1, "", "field"], [9, 12, 1, "", "type"]], "mcdecoder.core.FieldInstructionConditionObjectDescription": [[9, 11, 1, "", "element_index"], [9, 11, 1, "", "field"]], "mcdecoder.core.FunctionIdConditionObject": [[9, 11, 1, "", "argument"], [9, 11, 1, "", "function"], [9, 12, 1, "", "type"]], "mcdecoder.core.FunctionInstructionConditionObjectDescription": [[9, 11, 1, "", "argument"], [9, 11, 1, "", "function"]], "mcdecoder.core.ImmediateIdConditionObject": [[9, 12, 1, "", "type"], [9, 11, 1, "", "value"]], "mcdecoder.core.ImmediateInstructionConditionObjectDescription": [[9, 11, 1, "", "value"]], "mcdecoder.core.InIdCondition": [[9, 11, 1, "", "subject"], [9, 12, 1, "", "type"], [9, 11, 1, "", "values"]], "mcdecoder.core.InInstructionConditionDescription": [[9, 11, 1, "", "subject"], [9, 11, 1, "", "values"]], "mcdecoder.core.InRangeIdCondition": [[9, 11, 1, "", "subject"], [9, 12, 1, "", "type"], [9, 11, 1, "", "value_end"], [9, 11, 1, "", "value_start"]], "mcdecoder.core.InRangeInstructionConditionDescription": [[9, 11, 1, "", "subject"], [9, 11, 1, "", "value_end"], [9, 11, 1, "", "value_start"]], "mcdecoder.core.InstructionDecodeResult": [[9, 11, 1, "", "decoder"], [9, 12, 1, "", "field_results"], [9, 11, 1, "", "fields"]], "mcdecoder.core.InstructionDecoder": [[9, 11, 1, "", "encoding_element_bit_length"], [9, 11, 1, "", "extras"], [9, 12, 1, "", "field_decoders"], [9, 11, 1, "", "fields"], [9, 11, 1, "", "fixed_bit_mask"], [9, 11, 1, "", "fixed_bits"], [9, 12, 1, "", "fixed_bits_mask"], [9, 11, 1, "", "length_of_encoding_elements"], [9, 11, 1, "", "match_condition"], [9, 11, 1, "", "name"], [9, 11, 1, "", "type_bit_length"], [9, 12, 1, "", "type_bit_size"], [9, 11, 1, "", "unmatch_condition"]], "mcdecoder.core.InstructionDecoderCondition": [[9, 12, 1, "", "type"]], "mcdecoder.core.InstructionDecoderConditionObject": [[9, 12, 1, "", "type"]], "mcdecoder.core.InstructionDescription": [[9, 11, 1, "", "extras"], [9, 11, 1, "", "field_extras"], [9, 11, 1, "", "format"], [9, 11, 1, "", "match_condition"], [9, 11, 1, "", "name"], [9, 11, 1, "", "unmatch_condition"]], "mcdecoder.core.InstructionEncodingDescription": [[9, 11, 1, "", "elements"]], "mcdecoder.core.InstructionEncodingElementDescription": [[9, 11, 1, "", "fields"]], "mcdecoder.core.InstructionFieldDecodeResult": [[9, 11, 1, "", "decoder"], [9, 11, 1, "", "value"]], "mcdecoder.core.InstructionFieldDecoder": [[9, 11, 1, "", "extras"], [9, 11, 1, "", "name"], [9, 12, 1, "", "subfield_decoders"], [9, 11, 1, "", "subfields"], [9, 11, 1, "", "type_bit_length"], [9, 12, 1, "", "type_bit_size"]], "mcdecoder.core.InstructionFieldEncodingDescription": [[9, 11, 1, "", "bit_ranges"], [9, 11, 1, "", "bits_format"], [9, 11, 1, "", "name"]], "mcdecoder.core.InstructionSubfieldDecoder": [[9, 12, 1, "", "end_bit_in_field"], [9, 12, 1, "", "end_bit_in_instruction"], [9, 11, 1, "", "index"], [9, 11, 1, "", "lsb_in_field"], [9, 11, 1, "", "lsb_in_instruction"], [9, 11, 1, "", "mask"], [9, 11, 1, "", "msb_in_instruction"], [9, 12, 1, "", "start_bit_in_instruction"]], "mcdecoder.core.LoadError": [[9, 11, 1, "", "message"]], "mcdecoder.core.LogicalInstructionConditionDescription": [[9, 11, 1, "", "conditions"], [9, 11, 1, "", "operator"]], "mcdecoder.core.MachineDecoder": [[9, 11, 1, "", "byteorder"], [9, 11, 1, "", "extras"]], "mcdecoder.core.MachineDescription": [[9, 11, 1, "", "byteorder"], [9, 11, 1, "", "extras"]], "mcdecoder.core.McDecoder": [[9, 11, 1, "", "decision_trees"], [9, 11, 1, "", "extras"], [9, 12, 1, "", "instruction_decoders"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "machine"], [9, 12, 1, "", "machine_decoder"], [9, 11, 1, "", "namespace"], [9, 11, 1, "", "namespace_prefix"]], "mcdecoder.core.McDecoderDescription": [[9, 11, 1, "", "namespace"], [9, 11, 1, "", "process_instruction_hook"]], "mcdecoder.core.McDescription": [[9, 11, 1, "", "decoder"], [9, 11, 1, "", "extras"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "machine"]], "mcdecoder.core.McdDecisionNode": [[9, 12, 1, "", "all_nodes"], [9, 11, 1, "", "arbitrary_bit_node"], [9, 11, 1, "", "fixed_bit_nodes"], [9, 11, 1, "", "index"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "mask"]], "mcdecoder.core.McdDecisionTree": [[9, 11, 1, "", "encoding_element_bit_length"], [9, 11, 1, "", "length_of_encoding_elements"], [9, 11, 1, "", "root_node"]], "mcdecoder.core.OrIdCondition": [[9, 11, 1, "", "conditions"], [9, 12, 1, "", "type"]], "mcdecoder.emulator": [[9, 8, 1, "", "emulate"]], "mcdecoder.exporter": [[9, 8, 1, "", "export"]], "mcdecoder.generator": [[9, 8, 1, "", "generate"]]}, "objtypes": {"0": "c:function", "1": "c:functionParam", "2": "c:struct", "3": "c:member", "4": "c:union", "5": "c:enum", "6": "c:enumerator", "7": "py:module", "8": "py:function", "9": "py:data", "10": "py:class", "11": "py:attribute", "12": "py:property", "13": "py:exception"}, "objnames": {"0": ["c", "function", "C function"], "1": ["c", "functionParam", "C function parameter"], "2": ["c", "struct", "C struct"], "3": ["c", "member", "C member"], "4": ["c", "union", "C union"], "5": ["c", "enum", "C enum"], "6": ["c", "enumerator", "C enumerator"], "7": ["py", "module", "Python module"], "8": ["py", "function", "Python function"], "9": ["py", "data", "Python data"], "10": ["py", "class", "Python class"], "11": ["py", "attribute", "Python attribute"], "12": ["py", "property", "Python property"], "13": ["py", "exception", "Python exception"]}, "titleterms": {"readm": 0, "mcdecod": [0, 6, 7, 8, 11], "quickstart": [0, 12], "who": 0, "i": [0, 12], "requir": [0, 8], "instal": 0, "licens": 0, "more": 0, "detail": 0, "about": 0, "usag": [0, 16], "For": 0, "develop": [0, 6, 7, 8], "changelog": 1, "0": 1, "1": [1, 12, 20], "2020": 1, "09": 1, "27": 1, "major": 1, "issu": 1, "minor": 1, "code": [2, 3, 4, 5, 12, 20], "style": [2, 3, 4, 5], "content": [2, 7, 10, 11, 19], "c": [3, 4, 12], "except": [3, 4, 5], "rule": [3, 4, 5], "name": [3, 4, 13, 15], "enumer": 3, "format": [3, 15], "line": [3, 13], "length": 3, "addit": [3, 15], "version": [3, 21], "comment": [3, 4], "python": 5, "languag": 5, "import": [5, 6], "intern": [6, 9], "design": 6, "runtim": 6, "environ": [6, 8], "structur": 6, "depend": 6, "modul": [6, 9], "other": 6, "file": [6, 20], "extern": 6, "packag": 6, "directori": 6, "document": [7, 8, 11], "guid": [8, 10], "branch": 8, "polici": [8, 21], "how": 8, "setup": 8, "run": [8, 12], "test": 8, "gener": [8, 9, 12, 13, 20], "decod": [8, 12, 15, 16, 17], "build": 8, "member": 9, "__main__": 9, "app": 9, "export": [9, 13], "emul": [9, 13], "checker": 9, "core": 9, "common": [9, 15], "__version__": 9, "user": [10, 20], "The": [11, 12], "indic": 11, "tutori": 12, "introduc": 12, "an": [12, 20], "exampl": 12, "instruct": [12, 15], "encod": 12, "add": [12, 20], "immedi": 12, "arm": 12, "a1": 12, "push": 12, "2": [12, 20], "write": 12, "mc": [12, 15, 16, 17, 20], "descript": [12, 15, 20], "express": [12, 15], "3": [12, 20], "check": [12, 13], "work": 12, "4": 12, "from": 12, "5": 12, "client": 12, "what": [12, 20], "": [12, 20], "next": [12, 20], "command": 13, "option": 13, "specif": [13, 15, 16, 17, 18, 19], "posit": 13, "argument": 13, "sub": 13, "limit": 14, "overview": 15, "machin": 15, "byteord": 15, "extra": 15, "match_condit": 15, "equal": 15, "condit": [15, 17], "In": 15, "set": 15, "rang": 15, "complex": 15, "unmatch_condit": 15, "field_extra": 15, "namespac": 15, "process_instruction_hook": 15, "includ": 15, "tag": 15, "schema": 15, "api": 16, "type": 16, "macro": 16, "function": 16, "model": 17, "decis": 17, "tree": 17, "templat": [18, 20], "variabl": 18, "defin": 20, "data": 20, "creat": 20, "versioniong": 21, "deprec": 21}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"README: mcdecoder": [[0, "readme-mcdecoder"]], "Quickstart": [[0, "quickstart"]], "Who is mcdecoder for": [[0, "who-is-mcdecoder-for"]], "Requirements": [[0, "requirements"]], "Installation": [[0, "installation"]], "License": [[0, "license"]], "More details about usage": [[0, "more-details-about-usage"]], "For developers of mcdecoder": [[0, "for-developers-of-mcdecoder"]], "Changelog": [[1, "changelog"]], "0.1 (2020-09-27)": [[1, "id1"]], "Major Issues": [[1, "major-issues"]], "Minor Issues": [[1, "minor-issues"]], "Coding style": [[2, "coding-style"]], "Contents:": [[2, null], [7, null], [10, null], [11, null], [19, null]], "C coding style": [[3, "c-coding-style"]], "Exceptions to the rule": [[3, "exceptions-to-the-rule"], [4, "exceptions-to-the-rule"], [5, "exceptions-to-the-rule"]], "Naming": [[3, "naming"], [4, "naming"]], "Naming / Enumerator Names": [[3, "naming-enumerator-names"]], "Formatting / Line length": [[3, "formatting-line-length"]], "Addition to the rule": [[3, "addition-to-the-rule"]], "C Version": [[3, "c-version"]], "Comments / Comment Style": [[3, "comments-comment-style"], [4, "comments-comment-style"]], "C++ coding style": [[4, "c-coding-style"]], "Python coding style": [[5, "python-coding-style"]], "Python Language Rules / Imports": [[5, "python-language-rules-imports"]], "Internal design": [[6, "internal-design"]], "Runtime environment": [[6, "runtime-environment"]], "Runtime structure and dependencies": [[6, "runtime-structure-and-dependencies"]], "Modules in mcdecoder": [[6, "modules-in-mcdecoder"]], "Other important files in mcdecoder": [[6, "other-important-files-in-mcdecoder"]], "Dependencies to external packages": [[6, "dependencies-to-external-packages"]], "Development environment": [[6, "development-environment"]], "Development structure and dependencies": [[6, "development-structure-and-dependencies"]], "Packages": [[6, "packages"]], "Directories": [[6, "directories"]], "Documents for mcdecoder developers": [[7, "documents-for-mcdecoder-developers"]], "Developer guides": [[8, "developer-guides"]], "Requirements for development": [[8, "requirements-for-development"]], "Branch policy": [[8, "branch-policy"]], "How to setup environment for development": [[8, "how-to-setup-environment-for-development"]], "How to run tests for mcdecoder": [[8, "how-to-run-tests-for-mcdecoder"]], "How to run tests for generated decoders": [[8, "how-to-run-tests-for-generated-decoders"]], "How to build documents": [[8, "how-to-build-documents"]], "Internal modules and members": [[9, "internal-modules-and-members"]], "__main__": [[9, "module-mcdecoder.__main__"]], "app": [[9, "module-mcdecoder.app"]], "generator": [[9, "module-mcdecoder.generator"]], "exporter": [[9, "module-mcdecoder.exporter"]], "emulator": [[9, "module-mcdecoder.emulator"]], "checker": [[9, "module-mcdecoder.checker"]], "core": [[9, "module-mcdecoder.core"]], "common": [[9, "module-mcdecoder.common"]], "__version__": [[9, "module-mcdecoder.__version__"]], "User guides": [[10, "user-guides"]], "The mcdecoder documentation": [[11, "the-mcdecoder-documentation"]], "Indices": [[11, "indices"]], "Quickstart tutorial": [[12, "quickstart-tutorial"]], "1. Introduce an example instruction encoding to be decoded": [[12, "introduce-an-example-instruction-encoding-to-be-decoded"]], "The instruction encoding of ADD (immediate, ARM) Encoding A1": [[12, "id1"]], "The instruction encoding of PUSH Encoding A1": [[12, "id2"]], "2. Write an MC description to express the encoding": [[12, "write-an-mc-description-to-express-the-encoding"]], "3. Check if the MC description is working": [[12, "check-if-the-mc-description-is-working"]], "4. Generate a decoder from the MC description": [[12, "generate-a-decoder-from-the-mc-description"]], "5. Run the decoder from a C client code": [[12, "run-the-decoder-from-a-c-client-code"]], "What\u2019s next?": [[12, "what-s-next"], [20, "what-s-next"]], "Command line option specification": [[13, "command-line-option-specification"]], "Positional Arguments": [[13, "positional-arguments"], [13, "positional-arguments_repeat1"], [13, "positional-arguments_repeat2"], [13, "positional-arguments_repeat3"], [13, "positional-arguments_repeat4"]], "Named Arguments": [[13, "named-arguments"], [13, "named-arguments_repeat1"], [13, "named-arguments_repeat2"], [13, "named-arguments_repeat3"], [13, "named-arguments_repeat4"]], "Sub-commands": [[13, "Sub-commands"]], "generate": [[13, "generate"]], "export": [[13, "export"]], "emulate": [[13, "emulate"]], "check": [[13, "check"]], "Limitations": [[14, "limitations"]], "MC description specification": [[15, "mc-description-specification"]], "Overview": [[15, "overview"]], "machine": [[15, "machine"]], "machine.byteorder": [[15, "machine-byteorder"]], "machine.extras": [[15, "machine-extras"]], "instructions": [[15, "instructions"]], "instructions.name": [[15, "instructions-name"]], "instructions.format": [[15, "instructions-format"]], "instructions.match_condition": [[15, "instructions-match-condition"]], "Equality condition": [[15, "equality-condition"]], "In-a-set condition": [[15, "in-a-set-condition"]], "In-a-range condition": [[15, "in-a-range-condition"]], "Complex condition": [[15, "complex-condition"]], "Common expressions": [[15, "common-expressions"]], "instructions.unmatch_condition": [[15, "instructions-unmatch-condition"]], "instructions.extras": [[15, "instructions-extras"]], "instructions.field_extras": [[15, "instructions-field-extras"]], "decoder": [[15, "decoder"]], "decoder.namespace": [[15, "decoder-namespace"]], "decoder.process_instruction_hook": [[15, "decoder-process-instruction-hook"]], "extras": [[15, "extras"]], "Additional specifications": [[15, "additional-specifications"]], "!include tag": [[15, "include-tag"]], "Schema specification": [[15, "schema-specification"]], "MC decoder API specification": [[16, "mc-decoder-api-specification"]], "Usage": [[16, "usage"]], "Types": [[16, "types"]], "Macros": [[16, "macros"]], "Functions": [[16, "functions"]], "MC decoder model specification": [[17, "mc-decoder-model-specification"]], "Decoders": [[17, "decoders"]], "Conditions": [[17, "conditions"]], "Decision tree": [[17, "decision-tree"]], "Template variable specification": [[18, "template-variable-specification"]], "Specifications": [[19, "specifications"]], "User templates": [[20, "user-templates"]], "1. Add user-defined data to an MC description": [[20, "add-user-defined-data-to-an-mc-description"]], "2. Create user-defined template files": [[20, "create-user-defined-template-files"]], "3. Generate codes with the created template": [[20, "generate-codes-with-the-created-template"]], "Versioniong policy": [[21, "versioniong-policy"]], "Deprecation policy": [[21, "deprecation-policy"]], "Versioning policy": [[21, "versioning-policy"]]}, "indexentries": {"andidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.AndIdCondition"]], "bitrangedescription (class in mcdecoder.core)": [[9, "mcdecoder.core.BitRangeDescription"]], "decodecontext (class in mcdecoder.core)": [[9, "mcdecoder.core.DecodeContext"]], "decodecontextvectorized (class in mcdecoder.core)": [[9, "mcdecoder.core.DecodeContextVectorized"]], "equalityidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.EqualityIdCondition"]], "equalityinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription"]], "fieldidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.FieldIdConditionObject"]], "fieldinstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription"]], "functionidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.FunctionIdConditionObject"]], "functioninstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription"]], "immediateidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.ImmediateIdConditionObject"]], "immediateinstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.ImmediateInstructionConditionObjectDescription"]], "inidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InIdCondition"]], "ininstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InInstructionConditionDescription"]], "inrangeidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InRangeIdCondition"]], "inrangeinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription"]], "instructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionConditionDescription"]], "instructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionConditionObjectDescription"]], "instructiondecoderesult (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecodeResult"]], "instructiondecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoder"]], "instructiondecodercondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoderCondition"]], "instructiondecoderconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoderConditionObject"]], "instructiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDescription"]], "instructionencodingdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionEncodingDescription"]], "instructionencodingelementdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionEncodingElementDescription"]], "instructionfielddecoderesult (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldDecodeResult"]], "instructionfielddecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldDecoder"]], "instructionfieldencodingdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription"]], "instructionsubfielddecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionSubfieldDecoder"]], "loaderror": [[9, "mcdecoder.core.LoadError"]], "logicalinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription"]], "machinedecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.MachineDecoder"]], "machinedescription (class in mcdecoder.core)": [[9, "mcdecoder.core.MachineDescription"]], "mcdecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.McDecoder"]], "mcdecoderdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.McDecoderDescription"]], "mcdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.McDescription"]], "mcddecisionnode (class in mcdecoder.core)": [[9, "mcdecoder.core.McdDecisionNode"]], "mcddecisiontree (class in mcdecoder.core)": [[9, "mcdecoder.core.McdDecisionTree"]], "oridcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.OrIdCondition"]], "__version__ (in module mcdecoder.__version__)": [[9, "mcdecoder.__version__.__version__"]], "all_nodes (mcdecoder.core.mcddecisionnode property)": [[9, "mcdecoder.core.McdDecisionNode.all_nodes"]], "arbitrary_bit_node (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.arbitrary_bit_node"]], "argument (mcdecoder.core.functionidconditionobject attribute)": [[9, "mcdecoder.core.FunctionIdConditionObject.argument"]], "argument (mcdecoder.core.functioninstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription.argument"]], "bit_length_of_character() (in module mcdecoder.common)": [[9, "mcdecoder.common.bit_length_of_character"]], "bit_ranges (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.bit_ranges"]], "bits_format (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.bits_format"]], "byteorder (mcdecoder.core.machinedecoder attribute)": [[9, "mcdecoder.core.MachineDecoder.byteorder"]], "byteorder (mcdecoder.core.machinedescription attribute)": [[9, "mcdecoder.core.MachineDescription.byteorder"]], "calc_instruction_bit_size() (in module mcdecoder.core)": [[9, "mcdecoder.core.calc_instruction_bit_size"]], "check() (in module mcdecoder.checker)": [[9, "mcdecoder.checker.check"]], "code16x1 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code16x1"]], "code16x1_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code16x1_vec"]], "code16x2 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code16x2"]], "code16x2_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code16x2_vec"]], "code32x1 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code32x1"]], "code32x1_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code32x1_vec"]], "conditions (mcdecoder.core.andidcondition attribute)": [[9, "mcdecoder.core.AndIdCondition.conditions"]], "conditions (mcdecoder.core.logicalinstructionconditiondescription attribute)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription.conditions"]], "conditions (mcdecoder.core.oridcondition attribute)": [[9, "mcdecoder.core.OrIdCondition.conditions"]], "convert_to_big_endian() (in module mcdecoder.common)": [[9, "mcdecoder.common.convert_to_big_endian"]], "create_mcdecoder_model() (in module mcdecoder.core)": [[9, "mcdecoder.core.create_mcdecoder_model"]], "decision_trees (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.decision_trees"]], "decode_instruction() (in module mcdecoder.core)": [[9, "mcdecoder.core.decode_instruction"]], "decoder (mcdecoder.core.instructiondecoderesult attribute)": [[9, "mcdecoder.core.InstructionDecodeResult.decoder"]], "decoder (mcdecoder.core.instructionfielddecoderesult attribute)": [[9, "mcdecoder.core.InstructionFieldDecodeResult.decoder"]], "decoder (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.decoder"]], "element_index (mcdecoder.core.fieldidconditionobject attribute)": [[9, "mcdecoder.core.FieldIdConditionObject.element_index"]], "element_index (mcdecoder.core.fieldinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription.element_index"]], "elements (mcdecoder.core.instructionencodingdescription attribute)": [[9, "mcdecoder.core.InstructionEncodingDescription.elements"]], "emulate() (in module mcdecoder.emulator)": [[9, "mcdecoder.emulator.emulate"]], "encoding_element_bit_length (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.encoding_element_bit_length"]], "encoding_element_bit_length (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.encoding_element_bit_length"]], "end (mcdecoder.core.bitrangedescription attribute)": [[9, "mcdecoder.core.BitRangeDescription.end"]], "end_bit_in_field (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.end_bit_in_field"]], "end_bit_in_instruction (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.end_bit_in_instruction"]], "export() (in module mcdecoder.exporter)": [[9, "mcdecoder.exporter.export"]], "extras (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.extras"]], "extras (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.extras"]], "extras (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.extras"]], "extras (mcdecoder.core.machinedecoder attribute)": [[9, "mcdecoder.core.MachineDecoder.extras"]], "extras (mcdecoder.core.machinedescription attribute)": [[9, "mcdecoder.core.MachineDescription.extras"]], "extras (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.extras"]], "extras (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.extras"]], "field (mcdecoder.core.fieldidconditionobject attribute)": [[9, "mcdecoder.core.FieldIdConditionObject.field"]], "field (mcdecoder.core.fieldinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription.field"]], "field_decoders (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.field_decoders"]], "field_extras (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.field_extras"]], "field_results (mcdecoder.core.instructiondecoderesult property)": [[9, "mcdecoder.core.InstructionDecodeResult.field_results"]], "fields (mcdecoder.core.instructiondecoderesult attribute)": [[9, "mcdecoder.core.InstructionDecodeResult.fields"]], "fields (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fields"]], "fields (mcdecoder.core.instructionencodingelementdescription attribute)": [[9, "mcdecoder.core.InstructionEncodingElementDescription.fields"]], "find_matched_instructions() (in module mcdecoder.core)": [[9, "mcdecoder.core.find_matched_instructions"]], "find_matched_instructions_vectorized() (in module mcdecoder.core)": [[9, "mcdecoder.core.find_matched_instructions_vectorized"]], "fixed_bit_mask (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bit_mask"]], "fixed_bit_nodes (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.fixed_bit_nodes"]], "fixed_bits (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bits"]], "fixed_bits_mask (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bits_mask"]], "format (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.format"]], "function (mcdecoder.core.functionidconditionobject attribute)": [[9, "mcdecoder.core.FunctionIdConditionObject.function"]], "function (mcdecoder.core.functioninstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription.function"]], "generate() (in module mcdecoder.generator)": [[9, "mcdecoder.generator.generate"]], "index (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.index"]], "index (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.index"]], "instruction_decoders (mcdecoder.core.mcdecoder property)": [[9, "mcdecoder.core.McDecoder.instruction_decoders"]], "instructions (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.instructions"]], "instructions (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.instructions"]], "instructions (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.instructions"]], "length_of_encoding_elements (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.length_of_encoding_elements"]], "length_of_encoding_elements (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.length_of_encoding_elements"]], "load_mc_description() (in module mcdecoder.core)": [[9, "mcdecoder.core.load_mc_description"]], "lsb_in_field (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.lsb_in_field"]], "lsb_in_instruction (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.lsb_in_instruction"]], "machine (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.machine"]], "machine (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.machine"]], "machine_decoder (mcdecoder.core.mcdecoder property)": [[9, "mcdecoder.core.McDecoder.machine_decoder"]], "main() (in module mcdecoder.__main__)": [[9, "mcdecoder.__main__.main"]], "make_mask() (in module mcdecoder.common)": [[9, "mcdecoder.common.make_mask"]], "make_parent_directories() (in module mcdecoder.common)": [[9, "mcdecoder.common.make_parent_directories"]], "mask (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.mask"]], "mask (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.mask"]], "match_condition (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.match_condition"]], "match_condition (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.match_condition"]], "mcdecoder (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.mcdecoder"]], "mcdecoder (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.mcdecoder"]], "mcdecoder.__main__": [[9, "module-mcdecoder.__main__"]], "mcdecoder.__version__": [[9, "module-mcdecoder.__version__"]], "mcdecoder.app": [[9, "module-mcdecoder.app"]], "mcdecoder.checker": [[9, "module-mcdecoder.checker"]], "mcdecoder.common": [[9, "module-mcdecoder.common"]], "mcdecoder.core": [[9, "module-mcdecoder.core"]], "mcdecoder.emulator": [[9, "module-mcdecoder.emulator"]], "mcdecoder.exporter": [[9, "module-mcdecoder.exporter"]], "mcdecoder.generator": [[9, "module-mcdecoder.generator"]], "message (mcdecoder.core.loaderror attribute)": [[9, "mcdecoder.core.LoadError.message"]], "module": [[9, "module-mcdecoder.__main__"], [9, "module-mcdecoder.__version__"], [9, "module-mcdecoder.app"], [9, "module-mcdecoder.checker"], [9, "module-mcdecoder.common"], [9, "module-mcdecoder.core"], [9, "module-mcdecoder.emulator"], [9, "module-mcdecoder.exporter"], [9, "module-mcdecoder.generator"]], "msb_in_instruction (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.msb_in_instruction"]], "name (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.name"]], "name (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.name"]], "name (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.name"]], "name (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.name"]], "namespace (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.namespace"]], "namespace (mcdecoder.core.mcdecoderdescription attribute)": [[9, "mcdecoder.core.McDecoderDescription.namespace"]], "namespace_prefix (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.namespace_prefix"]], "object (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.object"]], "object (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.object"]], "operator (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.operator"]], "operator (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.operator"]], "operator (mcdecoder.core.logicalinstructionconditiondescription attribute)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription.operator"]], "pad_trailing_zeros() (in module mcdecoder.common)": [[9, "mcdecoder.common.pad_trailing_zeros"]], "parse_instruction_encoding() (in module mcdecoder.core)": [[9, "mcdecoder.core.parse_instruction_encoding"]], "process_instruction_hook (mcdecoder.core.mcdecoderdescription attribute)": [[9, "mcdecoder.core.McDecoderDescription.process_instruction_hook"]], "root_node (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.root_node"]], "run_app() (in module mcdecoder.app)": [[9, "mcdecoder.app.run_app"]], "start (mcdecoder.core.bitrangedescription attribute)": [[9, "mcdecoder.core.BitRangeDescription.start"]], "start_bit_in_instruction (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.start_bit_in_instruction"]], "string_length_for_byte() (in module mcdecoder.common)": [[9, "mcdecoder.common.string_length_for_byte"]], "subfield_decoders (mcdecoder.core.instructionfielddecoder property)": [[9, "mcdecoder.core.InstructionFieldDecoder.subfield_decoders"]], "subfields (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.subfields"]], "subject (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.subject"]], "subject (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.subject"]], "subject (mcdecoder.core.inidcondition attribute)": [[9, "mcdecoder.core.InIdCondition.subject"]], "subject (mcdecoder.core.ininstructionconditiondescription attribute)": [[9, "mcdecoder.core.InInstructionConditionDescription.subject"]], "subject (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.subject"]], "subject (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.subject"]], "trim_whitespace() (in module mcdecoder.common)": [[9, "mcdecoder.common.trim_whitespace"]], "type (mcdecoder.core.andidcondition property)": [[9, "mcdecoder.core.AndIdCondition.type"]], "type (mcdecoder.core.equalityidcondition property)": [[9, "mcdecoder.core.EqualityIdCondition.type"]], "type (mcdecoder.core.fieldidconditionobject property)": [[9, "mcdecoder.core.FieldIdConditionObject.type"]], "type (mcdecoder.core.functionidconditionobject property)": [[9, "mcdecoder.core.FunctionIdConditionObject.type"]], "type (mcdecoder.core.immediateidconditionobject property)": [[9, "mcdecoder.core.ImmediateIdConditionObject.type"]], "type (mcdecoder.core.inidcondition property)": [[9, "mcdecoder.core.InIdCondition.type"]], "type (mcdecoder.core.inrangeidcondition property)": [[9, "mcdecoder.core.InRangeIdCondition.type"]], "type (mcdecoder.core.instructiondecodercondition property)": [[9, "mcdecoder.core.InstructionDecoderCondition.type"]], "type (mcdecoder.core.instructiondecoderconditionobject property)": [[9, "mcdecoder.core.InstructionDecoderConditionObject.type"]], "type (mcdecoder.core.oridcondition property)": [[9, "mcdecoder.core.OrIdCondition.type"]], "type_bit_length (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.type_bit_length"]], "type_bit_length (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.type_bit_length"]], "type_bit_size (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.type_bit_size"]], "type_bit_size (mcdecoder.core.instructionfielddecoder property)": [[9, "mcdecoder.core.InstructionFieldDecoder.type_bit_size"]], "unmatch_condition (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.unmatch_condition"]], "unmatch_condition (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.unmatch_condition"]], "value (mcdecoder.core.immediateidconditionobject attribute)": [[9, "mcdecoder.core.ImmediateIdConditionObject.value"]], "value (mcdecoder.core.immediateinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.ImmediateInstructionConditionObjectDescription.value"]], "value (mcdecoder.core.instructionfielddecoderesult attribute)": [[9, "mcdecoder.core.InstructionFieldDecodeResult.value"]], "value_end (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.value_end"]], "value_end (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.value_end"]], "value_start (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.value_start"]], "value_start (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.value_start"]], "values (mcdecoder.core.inidcondition attribute)": [[9, "mcdecoder.core.InIdCondition.values"]], "values (mcdecoder.core.ininstructionconditiondescription attribute)": [[9, "mcdecoder.core.InInstructionConditionDescription.values"]], "decodeinstruction (c function)": [[16, "c.DecodeInstruction"]], "decoderequest (c struct)": [[16, "c.DecodeRequest"]], "decoderequest.codes (c member)": [[16, "c.DecodeRequest.codes"]], "decoderesult (c struct)": [[16, "c.DecodeResult"]], "decoderesult.instruction (c union)": [[16, "c.DecodeResult.instruction"]], "decoderesult.instruction_id (c member)": [[16, "c.DecodeResult.instruction_id"]], "instruction_id_max (c var)": [[16, "c.INSTRUCTION_ID_MAX"]], "instructionid (c enum)": [[16, "c.InstructionId"]], "instructionid.instructionid_kunknown (c enumerator)": [[16, "c.InstructionId.InstructionId_kUnknown"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "changelog", "dev_coding_style", "dev_coding_style_c", "dev_coding_style_cpp", "dev_coding_style_python", "dev_design", "dev_docs", "dev_guides", "dev_modules", "guides", "index", "quickstart", "spec_commandline_options", "spec_limit", "spec_mc_desc", "spec_mcdecoder_api", "spec_mcdecoder_model", "spec_template_var", "specifications", "user_templates", "version"], "filenames": ["README.rst", "changelog.rst", "dev_coding_style.rst", "dev_coding_style_c.rst", "dev_coding_style_cpp.rst", "dev_coding_style_python.rst", "dev_design.rst", "dev_docs.rst", "dev_guides.rst", "dev_modules.rst", "guides.rst", "index.rst", "quickstart.rst", "spec_commandline_options.rst", "spec_limit.rst", "spec_mc_desc.rst", "spec_mcdecoder_api.rst", "spec_mcdecoder_model.rst", "spec_template_var.rst", "specifications.rst", "user_templates.rst", "version.rst"], "titles": ["README: mcdecoder", "Changelog", "Coding style", "C coding style", "C++ coding style", "Python coding style", "Internal design", "Documents for mcdecoder developers", "Developer guides", "Internal modules and members", "User guides", "The mcdecoder documentation", "Quickstart tutorial", "Command line option specification", "Limitations", "MC description specification", "MC decoder API specification", "MC decoder model specification", "Template variable specification", "Specifications", "User templates", "Versioniong policy"], "terms": {"The": [0, 3, 4, 5, 8, 9, 13, 14, 15, 17, 20, 21], "machin": [0, 9, 12, 13, 17, 18, 19, 20], "code": [0, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18], "decod": [0, 6, 7, 9, 10, 11, 13, 14, 18, 19, 20], "set": [0, 8, 9, 17], "tool": [0, 3, 4, 8], "implement": [0, 6, 9], "It": [0, 6, 9, 12, 15, 17], "includ": [0, 6, 9, 12, 13, 16, 20], "gener": [0, 3, 4, 6, 7, 10, 14, 15, 17, 18], "user": [0, 6, 9, 11, 12, 13, 14, 15, 17, 18], "defin": [0, 6, 9, 10, 12, 13, 14, 15, 17, 18], "specif": [0, 6, 9, 11, 12, 20, 21], "emul": [0, 6, 7, 12], "binari": [0, 9, 13], "data": [0, 9, 10, 13, 15, 17, 18], "show": [0, 6, 13], "result": [0, 6, 9, 12, 15, 16, 17], "check": [0, 6, 8, 9, 10, 20], "integr": [0, 6, 9, 12], "etc": [0, 3, 4, 6, 9, 14, 15], "current": [0, 9, 13], "onli": [0, 6, 9, 13, 14], "c": [0, 2, 6, 7, 8, 10, 13, 14, 20], "languag": [0, 3, 12, 14], "your": [0, 12, 20], "arm": [0, 15, 20], "yaml": [0, 12, 13, 15, 20], "byteord": [0, 9, 12, 13, 17, 20], "littl": [0, 9, 12, 13, 14, 15, 17, 20], "instruct": [0, 9, 10, 13, 14, 16, 17, 18, 19, 20], "name": [0, 5, 9, 12, 16, 17, 18, 19, 20], "add_immediate_a1": [0, 12], "format": [0, 6, 9, 12, 13, 20], "xxxx": [0, 12, 15, 20], "cond": [0, 12, 15, 16, 20], "00": [0, 12, 15, 20], "1": [0, 9, 10, 13, 15, 17, 18], "0100": [0, 12, 13, 15, 20], "x": [0, 8, 9, 12, 13, 15, 20], "": [0, 9, 10, 13, 15, 16, 17], "rn": [0, 12, 15, 20], "rd": [0, 12, 15, 20], "imm12": [0, 12, 15, 20], "us": [0, 3, 4, 5, 6, 8, 9, 12, 13, 15, 16, 17, 20, 21], "from": [0, 3, 9, 10, 13, 15, 21], "client": [0, 10], "const": [0, 12, 16, 20], "uint8_t": [0, 12, 16], "kmachinecod": [0, 12], "0x04": [0, 12], "0xb0": [0, 12], "0x8d": [0, 12], "0xe2": [0, 12], "decoderequest": [0, 3, 4, 12, 16], "request": [0, 12, 16], "decoderesult": [0, 12, 16], "bool": [0, 9, 12, 16], "succeed": [0, 9, 12, 16], "0": [0, 6, 8, 9, 12, 13, 15, 16, 17, 18, 20, 21], "decodeinstruct": [0, 3, 4, 12, 16], "follow": [0, 3, 12, 13, 15, 20, 21], "step": [0, 12, 20], "below": [0, 12, 14, 15, 20], "go": 0, "tutori": [0, 6, 10, 11, 20], "cpu": 0, "To": [0, 3, 4, 20], "part": [0, 3, 4, 15, 21], "an": [0, 3, 6, 8, 9, 10, 13, 15, 16, 17], "static": 0, "analyz": 0, "learner": 0, "basic": 0, "hand": 0, "approach": 0, "learn": 0, "write": [0, 10], "test": [0, 6, 7, 9, 12, 15, 17], "actual": 0, "maintain": 0, "ar": [0, 3, 4, 6, 8, 9, 12, 13, 14, 15, 17, 20, 21], "tough": 0, "cumbersom": 0, "sooth": 0, "pain": 0, "wa": 0, "origin": [0, 3, 4, 5], "athril": [0, 13], "now": [0, 12], "independ": 0, "python": [0, 1, 2, 6, 7, 8, 15], "3": [0, 1, 8, 10, 15], "8": [0, 8, 14, 15], "pip": [0, 5, 8], "python3": [0, 8], "m": [0, 8, 9], "mit": 0, "see": [0, 3, 4, 5, 12, 15, 18, 20], "document": [0, 6, 20], "support": [1, 3, 9, 12, 13, 14, 15, 17, 20], "11": [1, 12, 15], "initi": 1, "releas": [1, 8, 15, 21], "none": [1, 9, 15, 17], "except": [2, 9], "rule": 2, "addit": [2, 8, 9, 12, 19, 20], "mcdecod": [3, 4, 5, 9, 10, 12, 13, 15, 16, 17, 18, 20, 21], "i": [3, 4, 5, 6, 9, 10, 13, 15, 16, 17, 20, 21], "base": [3, 4, 5, 6, 8, 9, 13, 15, 17], "googl": [3, 4, 5, 6, 12], "guid": [3, 4, 5, 7, 11, 12], "add": [3, 4, 5, 10], "some": [3, 4, 5, 9, 20, 21], "modif": [3, 4, 5], "becaus": [3, 4, 5], "For": [3, 4, 8, 10, 12], "type": [3, 4, 9, 13, 15, 17, 18, 19, 20], "constant": [3, 4, 20], "function": [3, 4, 6, 9, 12, 15, 17, 19], "thi": [3, 4, 5, 6, 9, 12, 13, 14, 15, 17, 20], "project": [3, 4, 5, 6], "you": [3, 4, 5, 8, 12, 14, 15, 20], "can": [3, 4, 5, 12, 14, 15, 20], "underscor": [3, 4], "split": [3, 4, 15], "namespac": [3, 9, 16, 17, 18, 20], "_": [3, 4, 20], "option": [3, 4, 6, 11, 12, 15, 19, 20], "exampl": [3, 4, 6, 10, 15, 16, 20], "arm_decoderesult": 3, "decoderequest_add": 3, "riscv_decoderesult_push": 3, "kinstructionidmax": [3, 4], "arm_kdecodeerrorsmax": 3, "kinstructionidmax_add": 3, "riscv_kdecodeerrorsmax_push": 3, "arm_printinstruct": 3, "decodeinstruction_add": 3, "riscv_printinstruction_push": 3, "instructionid": [3, 4, 16], "arm_decodeerror": 3, "instructionid_add": 3, "riscv_decodeerrors_push": 3, "instructionid_kunknown": [3, 12, 16], "arm_decodeerrors_kok": 3, "instructionid_k_add": 3, "riscv_decodeerrors_k_push": 3, "With": [3, 4], "rational": [3, 4, 5], "There": 3, "reason": 3, "doesn": 3, "t": [3, 9, 15, 17, 20], "so": [3, 5, 6, 20], "we": [3, 4, 8, 12], "prefix": [3, 9, 17, 18, 20], "separ": [3, 15], "among": 3, "symbol": [3, 4, 9, 15], "clarifi": [3, 4], "boundari": [3, 4], "between": [3, 4, 5, 15], "fix": [3, 4, 6, 9, 15, 17, 21], "put": [3, 4, 15, 20], "them": [3, 4], "also": [3, 4, 5, 6, 15], "enumeration_typ": 3, "decodeerrors_kok": 3, "lead": 3, "k": 3, "qualifi": 3, "specifi": [3, 5, 9, 15, 20], "correct": 3, "ambigu": 3, "127": 3, "charact": [3, 9, 13, 15], "maximum": 3, "80": 3, "too": 3, "short": 3, "make": [3, 6, 8, 9, 12, 20], "vertic": 3, "longer": 3, "less": [3, 9, 15], "readabl": [3, 15], "my": 3, "opinion": 3, "should": [3, 6, 9, 12], "target": [3, 9], "c11": [3, 14], "e": [3, 8, 12], "c18": 3, "featur": [3, 6, 15, 21], "portabl": 3, "environ": [3, 5, 7], "abov": [3, 8], "api": [3, 4, 11, 12, 13, 19], "other": [3, 4, 12, 13, 14, 15], "identifi": [3, 16], "doxygen": [3, 4], "enumer": [4, 16], "decoderesult_add": 4, "kdecodeerrorsmax": 4, "printinstruction_add": 4, "decodeerrors_add": 4, "kunknown": 4, "k_add": 4, "either": 4, "syntax": [4, 20], "Be": 4, "consist": [4, 15], "how": [4, 7, 12], "what": [4, 10], "where": [4, 15, 16], "much": 4, "more": [4, 6, 10, 12, 20], "common": [4, 6, 7], "tell": 4, "differ": [4, 15], "easili": 4, "develop": [5, 10, 11], "rel": 5, "modul": [5, 7, 11], "same": [5, 9, 12, 15, 20], "packag": [5, 8], "do": [5, 8], "even": 5, "full": 5, "help": 5, "prevent": 5, "unintention": 5, "twice": 5, "pyright": 5, "cannot": 5, "resolv": 5, "conflict": 5, "directori": [5, 8, 9, 13, 15, 20], "those": [5, 20], "must": [5, 9, 12, 14, 15, 17, 20], "descript": [6, 9, 10, 11, 13, 18, 19], "__main__": [6, 7], "entrypoint": 6, "app": [6, 7, 12], "workflow": [6, 9], "pars": [6, 9], "command": [6, 9, 11, 12, 19, 20], "line": [6, 9, 11, 12, 19, 20], "dispatch": 6, "each": [6, 9, 12, 15, 17, 21], "sub": [6, 9, 12, 19], "accord": [6, 12, 13], "templat": [6, 9, 10, 11, 12, 13, 14, 19], "export": [6, 7, 12], "mc": [6, 9, 10, 11, 13, 18, 19], "return": [6, 9, 12, 16], "checker": [6, 7], "vector": [6, 9], "calcul": [6, 9], "perform": 6, "core": [6, 7, 15, 17], "provid": 6, "valid": [6, 9, 13], "against": [6, 9, 21], "schema": [6, 9, 19], "creat": [6, 8, 9, 10, 12], "instanc": 6, "model": [6, 9, 11, 18, 19, 20], "util": 6, "__version__": [6, 7], "version": [6, 9, 10, 13, 15, 17, 18], "number": [6, 9, 13, 16, 17, 21], "its": [6, 9, 12, 15, 17], "If": [6, 8, 9, 12, 15, 20, 21], "multipl": [6, 12, 14, 15], "requir": [6, 7, 10], "certain": [6, 12, 13, 14], "strongli": 6, "relat": [6, 9, 15, 17], "like": [6, 12, 15, 20], "convert": [6, 9], "integ": [6, 9, 15, 16], "valu": [6, 9, 12, 15, 17], "sever": [6, 15], "consid": 6, "doe": [6, 9, 14, 15], "billion": 6, "all": [6, 8, 9, 12, 15], "have": [6, 8, 9, 12, 14, 17, 20], "shell": 6, "script": 6, "run": [6, 7, 9, 10, 14, 20], "automat": 6, "setuptool": 6, "jinja2": [6, 20], "json": [6, 15], "grammar": [6, 12], "lark": 6, "pyyaml": 6, "load": [6, 9], "jsonschema": 6, "numpi": 6, "improv": [6, 21], "deprec": [6, 9, 10, 13, 17, 18], "warn": 6, "about": [6, 10, 12, 18, 20], "pytest": [6, 8], "unit": 6, "cov": [6, 8], "measur": 6, "coverag": [6, 8], "behav": 6, "boost": 6, "cucumb": 6, "cpp": 6, "bundler": [6, 8], "v2": 6, "cmake": [6, 8], "build": [6, 7], "fetch": 6, "sphinx": 6, "argpars": 6, "read": 6, "doc": 6, "theme": 6, "usabl": 6, "graphviz": [6, 8], "diagram": 6, "content": [6, 12, 15, 20], "publish": 6, "github": [6, 8, 11, 12, 15, 20], "page": 6, "src": [6, 8, 15], "sourc": [6, 8], "src_doc": [6, 8], "rst": 6, "both": 6, "mainli": 6, "branch": 7, "polici": [7, 10, 11], "setup": 7, "intern": [7, 11], "design": [7, 11, 20], "runtim": 7, "member": [7, 11], "style": [7, 11], "ubuntu": 8, "20": [8, 12, 15], "venv": 8, "recommend": 8, "rubi": 8, "rubygem": 8, "header": 8, "file": [8, 9, 10, 12, 13, 15], "dev": 8, "simplic": [8, 12], "master": 8, "unstabl": 8, "stabl": 8, "mark": [8, 21], "tag": 8, "need": [8, 12, 20], "pleas": 8, "out": [8, 12, 13, 20], "one": [8, 9, 14, 15], "instal": [8, 10], "platform": 8, "sudo": 8, "apt": 8, "libgtest": 8, "libboost": 8, "nlohmann": 8, "json3": 8, "libasio": 8, "libtclap": 8, "clone": 8, "git": 8, "http": 8, "com": 8, "wildlarva": 8, "virtual": 8, "switch": [8, 12, 16], "cd": 8, "env": 8, "bin": 8, "activ": 8, "librari": 8, "r": 8, "txt": 8, "gem": 8, "bundl": 8, "config": [8, 15], "local": 8, "path": [8, 9, 13, 15], "after": 8, "chang": [8, 15, 21], "immedi": [8, 9, 15, 17, 20], "reflect": 8, "without": [8, 16], "report": 8, "htmlcov": 8, "html": 8, "b": 8, "ctest": 8, "clean": 8, "appli": [8, 9, 15, 17], "main": [9, 12], "int": [9, 12, 17], "entri": 9, "point": 9, "exit": [9, 13], "run_app": 9, "argv": 9, "list": [9, 15, 17], "str": [9, 17], "applic": 9, "execut": [9, 12], "correspond": [9, 13], "paramet": [9, 16], "mcfile": [9, 13], "template_directori": 9, "output_directori": 9, "default": [9, 12, 13], "c_decod": [9, 13], "output": [9, 12, 13, 20], "output_fil": 9, "anoth": [9, 13, 15], "note": [9, 13, 15], "csv": [9, 12, 13], "bit_pattern": 9, "liter": [9, 17], "2": [9, 10, 13, 15, 21], "16": [9, 12, 13, 14, 15], "big": [9, 13, 15, 17], "endian": [9, 13, 14, 15], "hex": [9, 13], "string": [9, 13, 15, 17, 18], "express": [9, 10, 17], "byte": [9, 13, 15, 17], "order": [9, 13, 15, 17], "error": [9, 15], "bit": [9, 12, 14, 15, 17], "pattern": [9, 12, 13, 14, 15], "input": [9, 12, 13, 16], "class": [9, 17], "andidcondit": [9, 17], "condit": [9, 12, 19], "instructiondecodercondit": [9, 17], "subclass": [9, 17], "combin": [9, 15, 17], "AND": [9, 17], "oper": [9, 15, 17], "child": [9, 17], "logic": [9, 15, 17], "properti": [9, 15, 17], "alwai": [9, 17], "bitrangedescript": 9, "start": [9, 15, 17], "end": [9, 15, 17], "object": [9, 15, 17], "rang": [9, 13, 17], "lsb": [9, 12, 15, 17], "msb": [9, 12, 15, 17], "decodecontext": 9, "code16x1": 9, "code16x2": 9, "code32x1": 9, "context": 9, "inform": [9, 12, 15, 18, 20], "while": 9, "non": 9, "word": [9, 15], "32": [9, 14], "decodecontextvector": 9, "code16x1_vec": 9, "ndarrai": 9, "code16x2_vec": 9, "code32x1_vec": 9, "length": [9, 14, 17], "n": [9, 12, 15, 16, 17, 18, 20], "equalityidcondit": [9, 17], "subject": [9, 15, 17], "instructiondecoderconditionobject": [9, 17], "equal": [9, 17], "field": [9, 12, 15, 16, 17, 20], "equalityinstructionconditiondescript": 9, "instructionconditionobjectdescript": 9, "instructionconditiondescript": 9, "fieldidconditionobject": [9, 17], "element_index": [9, 17], "element": [9, 12, 15, 17, 18], "index": [9, 11, 15, 17], "fieldinstructionconditionobjectdescript": 9, "functionidconditionobject": [9, 17], "argument": [9, 15, 17, 19], "call": [9, 12, 15, 17, 20], "functioninstructionconditionobjectdescript": 9, "immediateidconditionobject": [9, 17], "immediateinstructionconditionobjectdescript": 9, "inidcondit": [9, 17], "ininstructionconditiondescript": 9, "inrangeidcondit": [9, 17], "value_start": [9, 15, 17], "value_end": [9, 15, 17], "in_rang": [9, 15, 17], "inclus": [9, 15, 17], "inrangeinstructionconditiondescript": 9, "instructiondecoderesult": 9, "instructiondecod": [9, 15, 17, 18], "instructionfielddecoderesult": 9, "field_result": 9, "sinc": [9, 17], "1a6": [9, 17], "remov": [9, 13, 17, 18, 21], "instead": [9, 17], "encoding_element_bit_length": [9, 17], "length_of_encoding_el": [9, 17], "fixed_bit_mask": [9, 17], "fixed_bit": [9, 17], "type_bit_length": [9, 17], "match_condit": [9, 17], "unmatch_condit": [9, 17], "instructionfielddecod": [9, 17], "extra": [9, 17, 18, 19, 20], "ani": [9, 15, 17, 18, 20], "_encod": [9, 17], "encod": [9, 10, 14, 15, 17], "field_decod": [9, 17], "mask": [9, 17], "posit": [9, 17, 19], "fixed_bits_mask": [9, 17], "satisfi": [9, 17], "type_bit_s": [9, 17], "when": [9, 13, 15, 17, 21], "attribut": [9, 15, 17, 20], "abstract": [9, 17], "instructiondescript": 9, "arg": 9, "kwarg": 9, "dict": [9, 17], "describ": [9, 15], "contain": [9, 20], "field_extra": [9, 20], "instructionencodingdescript": 9, "instructionencodingelementdescript": 9, "instructionfieldencodingdescript": 9, "subfield": [9, 15, 17], "instructionsubfielddecod": [9, 17], "_msb": [9, 17], "subfield_decod": [9, 17], "bits_format": 9, "bit_rang": 9, "msb_in_instruct": [9, 17], "lsb_in_instruct": [9, 17], "lsb_in_field": [9, 17], "end_bit_in_field": [9, 17], "end_bit_in_instruct": [9, 17], "0th": [9, 17], "th": [9, 17], "start_bit_in_instruct": [9, 17], "loaderror": 9, "messag": 9, "rais": 9, "occur": 9, "explan": 9, "logicalinstructionconditiondescript": 9, "machinedecod": [9, 17, 18], "machinedescript": 9, "namespace_prefix": [9, 17, 18], "decision_tre": [9, 17], "mcddecisiontre": [9, 17], "itself": [9, 17], "root": [9, 17, 18], "instruction_decod": [9, 17, 18, 20], "machine_decod": [9, 17, 18], "mcdecoderdescript": 9, "isn": [9, 15, 17], "process_instruction_hook": 9, "hook": [9, 15], "process": [9, 15], "mcdescript": 9, "mcddecisionnod": [9, 17], "fixed_bit_nod": [9, 17], "arbitrary_bit_nod": [9, 17], "node": [9, 17], "ha": [9, 17], "two": [9, 17], "A": [9, 13, 15, 17, 21], "decid": [9, 17], "threshold": [9, 17], "arbitrari": [9, 17], "pass": [9, 17], "through": [9, 17], "all_nod": [9, 17], "iter": [9, 17], "descend": [9, 17], "wai": [9, 17, 20], "depth": [9, 17], "first": [9, 17, 20], "search": [9, 17], "dictionari": [9, 17], "tree": [9, 19], "root_nod": [9, 17], "decis": [9, 19], "find": [9, 14, 17], "match": [9, 12, 14, 16, 17], "oridcondit": [9, 17], "OR": [9, 17], "calc_instruction_bit_s": 9, "instruction_encod": 9, "create_mcdecoder_model": 9, "which": [9, 12, 13, 14, 15, 16], "invalid": 9, "inconsist": 9, "decode_instruct": 9, "find_matched_instruct": 9, "given": [9, 15], "find_matched_instructions_vector": 9, "instructin": 9, "matrix": 9, "hold": [9, 15], "boolean": 9, "whether": 9, "load_mc_descript": 9, "parse_instruction_encod": 9, "bit_length_of_charact": 9, "convert_to_big_endian": 9, "convers": 9, "taken": [9, 21], "place": [9, 15, 21], "make_mask": 9, "bit_siz": 9, "make_parent_directori": 9, "parent": 9, "true": [9, 16], "fals": [9, 15, 16], "otherwis": [9, 16], "pad_trailing_zero": 9, "expected_bit_s": 9, "pad": 9, "trail": 9, "zero": 9, "than": [9, 15, 20], "align": 9, "ad": [9, 21], "expect": 9, "size": 9, "string_length_for_byt": 9, "trim_whitespac": 9, "trim": 9, "whitespac": 9, "readm": [10, 11], "quickstart": [10, 11], "who": 10, "licens": 10, "detail": [10, 12, 20], "usag": [10, 13, 19, 20], "introduc": 10, "work": 10, "4": [10, 15], "5": [10, 15], "next": [10, 21], "versioniong": [10, 11], "variabl": [11, 19, 20], "limit": [11, 19], "changelog": 11, "back": 11, "In": 12, "ll": 12, "ignor": 12, "g": 12, "0b1111": [12, 15], "here": [12, 15, 16, 20], "31": 12, "30": [12, 15], "29": 12, "28": 12, "27": 12, "26": 12, "25": 12, "24": [12, 14], "23": 12, "22": 12, "21": 12, "19": 12, "18": 12, "17": 12, "15": [12, 15], "14": [12, 15], "13": [12, 15], "12": 12, "10": [12, 15, 20], "09": 12, "08": 12, "07": 12, "06": 12, "05": 12, "04": 12, "03": 12, "02": 12, "01": [12, 15], "register_list": [12, 15, 16, 20], "sequenc": [12, 15, 18], "befor": [12, 15], "understand": [12, 18, 20], "push_a1": 12, "1001": [12, 13, 15, 20], "1101": [12, 13, 15, 20], "minimum": 12, "let": 12, "behavior": [12, 15], "e28db004": 12, "mean": [12, 21], "fp": 12, "sp": 12, "assembli": 12, "r13": 12, "r11": 12, "Its": 12, "0xe": 12, "0b1110": 12, "0x0": 12, "0b0": 12, "0xd": 12, "0b1101": 12, "0xb": 12, "0b1011": 12, "0x4": 12, "0b100": 12, "fine": 12, "look": 12, "d": [12, 16], "get": [12, 16], "h": [12, 13, 16, 20], "did": 12, "stdio": 12, "void": 12, "printf": [12, 16], "fail": 12, "els": [12, 20], "instruction_id": [12, 16], "case": [12, 14, 16, 21], "instructionid_k_add_immediate_a1": 12, "nrd": 12, "nimm12": 12, "break": [12, 16], "instructionid_k_push_a1": 12, "handl": [12, 16], "unknown": [12, 16], "compil": [12, 15, 20], "gcc": [12, 15, 20], "good": 12, "coincid": 12, "over": 12, "glanc": 12, "view": 12, "filter": 12, "spreadsheet": 12, "excel": 12, "own": [12, 20], "custom": 12, "toolset": 13, "possibl": 13, "choic": 13, "program": [13, 14], "templatedir": 13, "outdir": 13, "standard": [13, 14], "gerer": 13, "directoi": 13, "user_templ": 13, "outfil": 13, "indata": 13, "e92d4800": 13, "1110": 13, "0010": 13, "1000": 13, "0000": 13, "00482de9": 13, "act": 13, "wildcard": [13, 15], "f": 13, "detect": 13, "problem": 13, "No": [13, 20], "duplic": 13, "092d4800": 13, "f92d4800": 13, "x92d4800": 13, "1010": 13, "1x10": 13, "002d4800": 13, "ff2d4800": 13, "xx2d4800": 13, "howev": 14, "host": 14, "comput": 14, "64": 14, "arch_typ": [15, 20], "add_1": [15, 20], "clock": [15, 20], "regist": [15, 20], "global": [15, 18, 20], "scope": [15, 18, 20], "process_instruct": 15, "structur": [15, 20], "map": 15, "repres": 15, "One": 15, "construct": 15, "imm": 15, "000": 15, "funct3": 15, "dest": 15, "xxx": 15, "xx": 15, "op": 15, "offset": 15, "adjac": 15, "111": 15, "6": 15, "field_bit": 15, "field_nam": 15, "field_bit_rang": 15, "bar": 15, "thei": [15, 20, 21], "re": 15, "doubl": 15, "slash": 15, "take": [15, 20], "arrai": 15, "time": [15, 20], "subfield_start": 15, "subfield_end": 15, "comma": 15, "These": 15, "group": 15, "just": 15, "15th": 15, "count": 15, "setbit_count": 15, "0xf": 15, "explain": 15, "togeth": 15, "field_object": 15, "function_object": 15, "field_element_index": 15, "mutual": 15, "exclus": 15, "kei": 15, "40": 15, "experiment": 15, "form": 15, "might": 15, "futur": 15, "py": 15, "yoo": 15, "signatur": 15, "def": 15, "name_of_hook_funct": 15, "import": 15, "extra_valu": 15, "extra_attribut": 15, "anywher": 15, "insert": 15, "depend": 15, "produc": 15, "scalar": 15, "mixtur": 15, "prompt": 15, "_instruct": 15, "add_instruct": 15, "push_instruct": 15, "push_1": [15, 20], "asterisk": 15, "term": 15, "enum": [15, 16], "additionalproperti": 15, "item": 15, "za": 15, "z": 15, "z0": 15, "9_": 15, "u0020": 15, "u0009": 15, "u000a": 15, "u000d": 15, "patternproperti": 15, "kcode": 16, "0x00": 16, "0x48": 16, "0x2d": 16, "0xe9": 16, "instructionid_k_push": 16, "push": 16, "struct": 16, "id": 16, "union": 16, "instructiondecoderesult_": 16, "instructionid_k_": 16, "appropri": 16, "unsign": 16, "uint16_t": 16, "uint32_t": 16, "instruction_id_max": 16, "shorthand": 18, "overview": 19, "macro": 19, "tabl": 20, "allow": 20, "mai": 20, "don": 20, "skip": 20, "second": 20, "access": 20, "architectur": 20, "inst": 20, "exist": 20, "field_reg_type_": 20, "endif": 20, "endfor": 20, "extern": 20, "uint8": 20, "final": 20, "And": 20, "arm_const": 20, "field_reg_type_add_1_rn": 20, "field_reg_type_add_1_rd": 20, "field_reg_type_add_1_imm12": 20, "regular": 21, "major": 21, "minor": 21, "micro": 21, "increas": 21, "signific": 21, "made": 21, "under": 21, "evalu": 21, "real": 21, "bug": 21}, "objects": {"": [[16, 0, 1, "c.DecodeInstruction", "DecodeInstruction"], [16, 2, 1, "c.DecodeRequest", "DecodeRequest"], [16, 2, 1, "c.DecodeResult", "DecodeResult"], [16, 3, 1, "c.INSTRUCTION_ID_MAX", "INSTRUCTION_ID_MAX"], [16, 5, 1, "c.InstructionId", "InstructionId"], [16, 6, 1, "c.InstructionId.InstructionId_kUnknown", "InstructionId_kUnknown"]], "DecodeInstruction": [[16, 1, 1, "c.DecodeInstruction", "request"], [16, 1, 1, "c.DecodeInstruction", "result"]], "DecodeRequest": [[16, 3, 1, "c.DecodeRequest.codes", "codes"]], "DecodeResult": [[16, 4, 1, "c.DecodeResult.instruction", "instruction"], [16, 3, 1, "c.DecodeResult.instruction_id", "instruction_id"]], "InstructionId": [[16, 6, 1, "c.InstructionId.InstructionId_kUnknown", "InstructionId_kUnknown"]], "mcdecoder": [[9, 7, 0, "-", "__main__"], [9, 7, 0, "-", "__version__"], [9, 7, 0, "-", "app"], [9, 7, 0, "-", "checker"], [9, 7, 0, "-", "common"], [9, 7, 0, "-", "core"], [9, 7, 0, "-", "emulator"], [9, 7, 0, "-", "exporter"], [9, 7, 0, "-", "generator"]], "mcdecoder.__main__": [[9, 8, 1, "", "main"]], "mcdecoder.__version__": [[9, 9, 1, "", "__version__"]], "mcdecoder.app": [[9, 8, 1, "", "run_app"]], "mcdecoder.checker": [[9, 8, 1, "", "check"]], "mcdecoder.common": [[9, 8, 1, "", "bit_length_of_character"], [9, 8, 1, "", "convert_to_big_endian"], [9, 8, 1, "", "make_mask"], [9, 8, 1, "", "make_parent_directories"], [9, 8, 1, "", "pad_trailing_zeros"], [9, 8, 1, "", "string_length_for_byte"], [9, 8, 1, "", "trim_whitespace"]], "mcdecoder.core": [[9, 10, 1, "", "AndIdCondition"], [9, 10, 1, "", "BitRangeDescription"], [9, 10, 1, "", "DecodeContext"], [9, 10, 1, "", "DecodeContextVectorized"], [9, 10, 1, "", "EqualityIdCondition"], [9, 10, 1, "", "EqualityInstructionConditionDescription"], [9, 10, 1, "", "FieldIdConditionObject"], [9, 10, 1, "", "FieldInstructionConditionObjectDescription"], [9, 10, 1, "", "FunctionIdConditionObject"], [9, 10, 1, "", "FunctionInstructionConditionObjectDescription"], [9, 10, 1, "", "ImmediateIdConditionObject"], [9, 10, 1, "", "ImmediateInstructionConditionObjectDescription"], [9, 10, 1, "", "InIdCondition"], [9, 10, 1, "", "InInstructionConditionDescription"], [9, 10, 1, "", "InRangeIdCondition"], [9, 10, 1, "", "InRangeInstructionConditionDescription"], [9, 10, 1, "", "InstructionConditionDescription"], [9, 10, 1, "", "InstructionConditionObjectDescription"], [9, 10, 1, "", "InstructionDecodeResult"], [9, 10, 1, "", "InstructionDecoder"], [9, 10, 1, "", "InstructionDecoderCondition"], [9, 10, 1, "", "InstructionDecoderConditionObject"], [9, 10, 1, "", "InstructionDescription"], [9, 10, 1, "", "InstructionEncodingDescription"], [9, 10, 1, "", "InstructionEncodingElementDescription"], [9, 10, 1, "", "InstructionFieldDecodeResult"], [9, 10, 1, "", "InstructionFieldDecoder"], [9, 10, 1, "", "InstructionFieldEncodingDescription"], [9, 10, 1, "", "InstructionSubfieldDecoder"], [9, 13, 1, "", "LoadError"], [9, 10, 1, "", "LogicalInstructionConditionDescription"], [9, 10, 1, "", "MachineDecoder"], [9, 10, 1, "", "MachineDescription"], [9, 10, 1, "", "McDecoder"], [9, 10, 1, "", "McDecoderDescription"], [9, 10, 1, "", "McDescription"], [9, 10, 1, "", "McdDecisionNode"], [9, 10, 1, "", "McdDecisionTree"], [9, 10, 1, "", "OrIdCondition"], [9, 8, 1, "", "calc_instruction_bit_size"], [9, 8, 1, "", "create_mcdecoder_model"], [9, 8, 1, "", "decode_instruction"], [9, 8, 1, "", "find_matched_instructions"], [9, 8, 1, "", "find_matched_instructions_vectorized"], [9, 8, 1, "", "load_mc_description"], [9, 8, 1, "", "parse_instruction_encoding"]], "mcdecoder.core.AndIdCondition": [[9, 11, 1, "", "conditions"], [9, 12, 1, "", "type"]], "mcdecoder.core.BitRangeDescription": [[9, 11, 1, "", "end"], [9, 11, 1, "", "start"]], "mcdecoder.core.DecodeContext": [[9, 11, 1, "", "code16x1"], [9, 11, 1, "", "code16x2"], [9, 11, 1, "", "code32x1"], [9, 11, 1, "", "mcdecoder"]], "mcdecoder.core.DecodeContextVectorized": [[9, 11, 1, "", "code16x1_vec"], [9, 11, 1, "", "code16x2_vec"], [9, 11, 1, "", "code32x1_vec"], [9, 11, 1, "", "mcdecoder"]], "mcdecoder.core.EqualityIdCondition": [[9, 11, 1, "", "object"], [9, 11, 1, "", "operator"], [9, 11, 1, "", "subject"], [9, 12, 1, "", "type"]], "mcdecoder.core.EqualityInstructionConditionDescription": [[9, 11, 1, "", "object"], [9, 11, 1, "", "operator"], [9, 11, 1, "", "subject"]], "mcdecoder.core.FieldIdConditionObject": [[9, 11, 1, "", "element_index"], [9, 11, 1, "", "field"], [9, 12, 1, "", "type"]], "mcdecoder.core.FieldInstructionConditionObjectDescription": [[9, 11, 1, "", "element_index"], [9, 11, 1, "", "field"]], "mcdecoder.core.FunctionIdConditionObject": [[9, 11, 1, "", "argument"], [9, 11, 1, "", "function"], [9, 12, 1, "", "type"]], "mcdecoder.core.FunctionInstructionConditionObjectDescription": [[9, 11, 1, "", "argument"], [9, 11, 1, "", "function"]], "mcdecoder.core.ImmediateIdConditionObject": [[9, 12, 1, "", "type"], [9, 11, 1, "", "value"]], "mcdecoder.core.ImmediateInstructionConditionObjectDescription": [[9, 11, 1, "", "value"]], "mcdecoder.core.InIdCondition": [[9, 11, 1, "", "subject"], [9, 12, 1, "", "type"], [9, 11, 1, "", "values"]], "mcdecoder.core.InInstructionConditionDescription": [[9, 11, 1, "", "subject"], [9, 11, 1, "", "values"]], "mcdecoder.core.InRangeIdCondition": [[9, 11, 1, "", "subject"], [9, 12, 1, "", "type"], [9, 11, 1, "", "value_end"], [9, 11, 1, "", "value_start"]], "mcdecoder.core.InRangeInstructionConditionDescription": [[9, 11, 1, "", "subject"], [9, 11, 1, "", "value_end"], [9, 11, 1, "", "value_start"]], "mcdecoder.core.InstructionDecodeResult": [[9, 11, 1, "", "decoder"], [9, 12, 1, "", "field_results"], [9, 11, 1, "", "fields"]], "mcdecoder.core.InstructionDecoder": [[9, 11, 1, "", "encoding_element_bit_length"], [9, 11, 1, "", "extras"], [9, 12, 1, "", "field_decoders"], [9, 11, 1, "", "fields"], [9, 11, 1, "", "fixed_bit_mask"], [9, 11, 1, "", "fixed_bits"], [9, 12, 1, "", "fixed_bits_mask"], [9, 11, 1, "", "length_of_encoding_elements"], [9, 11, 1, "", "match_condition"], [9, 11, 1, "", "name"], [9, 11, 1, "", "type_bit_length"], [9, 12, 1, "", "type_bit_size"], [9, 11, 1, "", "unmatch_condition"]], "mcdecoder.core.InstructionDecoderCondition": [[9, 12, 1, "", "type"]], "mcdecoder.core.InstructionDecoderConditionObject": [[9, 12, 1, "", "type"]], "mcdecoder.core.InstructionDescription": [[9, 11, 1, "", "extras"], [9, 11, 1, "", "field_extras"], [9, 11, 1, "", "format"], [9, 11, 1, "", "match_condition"], [9, 11, 1, "", "name"], [9, 11, 1, "", "unmatch_condition"]], "mcdecoder.core.InstructionEncodingDescription": [[9, 11, 1, "", "elements"]], "mcdecoder.core.InstructionEncodingElementDescription": [[9, 11, 1, "", "fields"]], "mcdecoder.core.InstructionFieldDecodeResult": [[9, 11, 1, "", "decoder"], [9, 11, 1, "", "value"]], "mcdecoder.core.InstructionFieldDecoder": [[9, 11, 1, "", "extras"], [9, 11, 1, "", "name"], [9, 12, 1, "", "subfield_decoders"], [9, 11, 1, "", "subfields"], [9, 11, 1, "", "type_bit_length"], [9, 12, 1, "", "type_bit_size"]], "mcdecoder.core.InstructionFieldEncodingDescription": [[9, 11, 1, "", "bit_ranges"], [9, 11, 1, "", "bits_format"], [9, 11, 1, "", "name"]], "mcdecoder.core.InstructionSubfieldDecoder": [[9, 12, 1, "", "end_bit_in_field"], [9, 12, 1, "", "end_bit_in_instruction"], [9, 11, 1, "", "index"], [9, 11, 1, "", "lsb_in_field"], [9, 11, 1, "", "lsb_in_instruction"], [9, 11, 1, "", "mask"], [9, 11, 1, "", "msb_in_instruction"], [9, 12, 1, "", "start_bit_in_instruction"]], "mcdecoder.core.LoadError": [[9, 11, 1, "", "message"]], "mcdecoder.core.LogicalInstructionConditionDescription": [[9, 11, 1, "", "conditions"], [9, 11, 1, "", "operator"]], "mcdecoder.core.MachineDecoder": [[9, 11, 1, "", "byteorder"], [9, 11, 1, "", "extras"]], "mcdecoder.core.MachineDescription": [[9, 11, 1, "", "byteorder"], [9, 11, 1, "", "extras"]], "mcdecoder.core.McDecoder": [[9, 11, 1, "", "decision_trees"], [9, 11, 1, "", "extras"], [9, 12, 1, "", "instruction_decoders"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "machine"], [9, 12, 1, "", "machine_decoder"], [9, 11, 1, "", "namespace"], [9, 11, 1, "", "namespace_prefix"]], "mcdecoder.core.McDecoderDescription": [[9, 11, 1, "", "namespace"], [9, 11, 1, "", "process_instruction_hook"]], "mcdecoder.core.McDescription": [[9, 11, 1, "", "decoder"], [9, 11, 1, "", "extras"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "machine"]], "mcdecoder.core.McdDecisionNode": [[9, 12, 1, "", "all_nodes"], [9, 11, 1, "", "arbitrary_bit_node"], [9, 11, 1, "", "fixed_bit_nodes"], [9, 11, 1, "", "index"], [9, 11, 1, "", "instructions"], [9, 11, 1, "", "mask"]], "mcdecoder.core.McdDecisionTree": [[9, 11, 1, "", "encoding_element_bit_length"], [9, 11, 1, "", "length_of_encoding_elements"], [9, 11, 1, "", "root_node"]], "mcdecoder.core.OrIdCondition": [[9, 11, 1, "", "conditions"], [9, 12, 1, "", "type"]], "mcdecoder.emulator": [[9, 8, 1, "", "emulate"]], "mcdecoder.exporter": [[9, 8, 1, "", "export"]], "mcdecoder.generator": [[9, 8, 1, "", "generate"]]}, "objtypes": {"0": "c:function", "1": "c:functionParam", "2": "c:struct", "3": "c:member", "4": "c:union", "5": "c:enum", "6": "c:enumerator", "7": "py:module", "8": "py:function", "9": "py:data", "10": "py:class", "11": "py:attribute", "12": "py:property", "13": "py:exception"}, "objnames": {"0": ["c", "function", "C function"], "1": ["c", "functionParam", "C function parameter"], "2": ["c", "struct", "C struct"], "3": ["c", "member", "C member"], "4": ["c", "union", "C union"], "5": ["c", "enum", "C enum"], "6": ["c", "enumerator", "C enumerator"], "7": ["py", "module", "Python module"], "8": ["py", "function", "Python function"], "9": ["py", "data", "Python data"], "10": ["py", "class", "Python class"], "11": ["py", "attribute", "Python attribute"], "12": ["py", "property", "Python property"], "13": ["py", "exception", "Python exception"]}, "titleterms": {"readm": 0, "mcdecod": [0, 6, 7, 8, 11], "quickstart": [0, 12], "who": 0, "i": [0, 12], "requir": [0, 8], "instal": 0, "licens": 0, "more": 0, "detail": 0, "about": 0, "usag": [0, 16], "For": 0, "develop": [0, 6, 7, 8], "changelog": 1, "0": 1, "1": [1, 12, 20], "2024": 1, "01": 1, "13": 1, "2020": 1, "09": 1, "27": 1, "major": 1, "issu": 1, "minor": 1, "code": [2, 3, 4, 5, 12, 20], "style": [2, 3, 4, 5], "content": [2, 7, 10, 11, 19], "c": [3, 4, 12], "except": [3, 4, 5], "rule": [3, 4, 5], "name": [3, 4, 13, 15], "enumer": 3, "format": [3, 15], "line": [3, 13], "length": 3, "addit": [3, 15], "version": [3, 21], "comment": [3, 4], "python": 5, "languag": 5, "import": [5, 6], "intern": [6, 9], "design": 6, "runtim": 6, "environ": [6, 8], "structur": 6, "depend": 6, "modul": [6, 9], "other": 6, "file": [6, 20], "extern": 6, "packag": 6, "directori": 6, "document": [7, 8, 11], "guid": [8, 10], "branch": 8, "polici": [8, 21], "how": 8, "setup": 8, "run": [8, 12], "test": 8, "gener": [8, 9, 12, 13, 20], "decod": [8, 12, 15, 16, 17], "build": 8, "member": 9, "__main__": 9, "app": 9, "export": [9, 13], "emul": [9, 13], "checker": 9, "core": 9, "common": [9, 15], "__version__": 9, "user": [10, 20], "The": [11, 12], "indic": 11, "tutori": 12, "introduc": 12, "an": [12, 20], "exampl": 12, "instruct": [12, 15], "encod": 12, "add": [12, 20], "immedi": 12, "arm": 12, "a1": 12, "push": 12, "2": [12, 20], "write": 12, "mc": [12, 15, 16, 17, 20], "descript": [12, 15, 20], "express": [12, 15], "3": [12, 20], "check": [12, 13], "work": 12, "4": 12, "from": 12, "5": 12, "client": 12, "what": [12, 20], "": [12, 20], "next": [12, 20], "command": 13, "option": 13, "specif": [13, 15, 16, 17, 18, 19], "posit": 13, "argument": 13, "sub": 13, "limit": 14, "overview": 15, "machin": 15, "byteord": 15, "extra": 15, "match_condit": 15, "equal": 15, "condit": [15, 17], "In": 15, "set": 15, "rang": 15, "complex": 15, "unmatch_condit": 15, "field_extra": 15, "namespac": 15, "process_instruction_hook": 15, "includ": 15, "tag": 15, "schema": 15, "api": 16, "type": 16, "macro": 16, "function": 16, "model": 17, "decis": 17, "tree": 17, "templat": [18, 20], "variabl": 18, "defin": 20, "data": 20, "creat": 20, "versioniong": 21, "deprec": 21}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"README: mcdecoder": [[0, "readme-mcdecoder"]], "Quickstart": [[0, "quickstart"]], "Who is mcdecoder for": [[0, "who-is-mcdecoder-for"]], "Requirements": [[0, "requirements"]], "Installation": [[0, "installation"]], "License": [[0, "license"]], "More details about usage": [[0, "more-details-about-usage"]], "For developers of mcdecoder": [[0, "for-developers-of-mcdecoder"]], "Changelog": [[1, "changelog"]], "0.1.1 (2024-01-13)": [[1, "id1"]], "0.1 (2020-09-27)": [[1, "id2"]], "Major Issues": [[1, "major-issues"]], "Minor Issues": [[1, "minor-issues"]], "Coding style": [[2, "coding-style"]], "Contents:": [[2, null], [7, null], [10, null], [11, null], [19, null]], "C coding style": [[3, "c-coding-style"]], "Exceptions to the rule": [[3, "exceptions-to-the-rule"], [4, "exceptions-to-the-rule"], [5, "exceptions-to-the-rule"]], "Naming": [[3, "naming"], [4, "naming"]], "Naming / Enumerator Names": [[3, "naming-enumerator-names"]], "Formatting / Line length": [[3, "formatting-line-length"]], "Addition to the rule": [[3, "addition-to-the-rule"]], "C Version": [[3, "c-version"]], "Comments / Comment Style": [[3, "comments-comment-style"], [4, "comments-comment-style"]], "C++ coding style": [[4, "c-coding-style"]], "Python coding style": [[5, "python-coding-style"]], "Python Language Rules / Imports": [[5, "python-language-rules-imports"]], "Internal design": [[6, "internal-design"]], "Runtime environment": [[6, "runtime-environment"]], "Runtime structure and dependencies": [[6, "runtime-structure-and-dependencies"]], "Modules in mcdecoder": [[6, "modules-in-mcdecoder"]], "Other important files in mcdecoder": [[6, "other-important-files-in-mcdecoder"]], "Dependencies to external packages": [[6, "dependencies-to-external-packages"]], "Development environment": [[6, "development-environment"]], "Development structure and dependencies": [[6, "development-structure-and-dependencies"]], "Packages": [[6, "packages"]], "Directories": [[6, "directories"]], "Documents for mcdecoder developers": [[7, "documents-for-mcdecoder-developers"]], "Developer guides": [[8, "developer-guides"]], "Requirements for development": [[8, "requirements-for-development"]], "Branch policy": [[8, "branch-policy"]], "How to setup environment for development": [[8, "how-to-setup-environment-for-development"]], "How to run tests for mcdecoder": [[8, "how-to-run-tests-for-mcdecoder"]], "How to run tests for generated decoders": [[8, "how-to-run-tests-for-generated-decoders"]], "How to build documents": [[8, "how-to-build-documents"]], "Internal modules and members": [[9, "internal-modules-and-members"]], "__main__": [[9, "module-mcdecoder.__main__"]], "app": [[9, "module-mcdecoder.app"]], "generator": [[9, "module-mcdecoder.generator"]], "exporter": [[9, "module-mcdecoder.exporter"]], "emulator": [[9, "module-mcdecoder.emulator"]], "checker": [[9, "module-mcdecoder.checker"]], "core": [[9, "module-mcdecoder.core"]], "common": [[9, "module-mcdecoder.common"]], "__version__": [[9, "module-mcdecoder.__version__"]], "User guides": [[10, "user-guides"]], "The mcdecoder documentation": [[11, "the-mcdecoder-documentation"]], "Indices": [[11, "indices"]], "Quickstart tutorial": [[12, "quickstart-tutorial"]], "1. Introduce an example instruction encoding to be decoded": [[12, "introduce-an-example-instruction-encoding-to-be-decoded"]], "The instruction encoding of ADD (immediate, ARM) Encoding A1": [[12, "id1"]], "The instruction encoding of PUSH Encoding A1": [[12, "id2"]], "2. Write an MC description to express the encoding": [[12, "write-an-mc-description-to-express-the-encoding"]], "3. Check if the MC description is working": [[12, "check-if-the-mc-description-is-working"]], "4. Generate a decoder from the MC description": [[12, "generate-a-decoder-from-the-mc-description"]], "5. Run the decoder from a C client code": [[12, "run-the-decoder-from-a-c-client-code"]], "What\u2019s next?": [[12, "what-s-next"], [20, "what-s-next"]], "Command line option specification": [[13, "command-line-option-specification"]], "Positional Arguments": [[13, "positional-arguments"], [13, "positional-arguments_repeat1"], [13, "positional-arguments_repeat2"], [13, "positional-arguments_repeat3"], [13, "positional-arguments_repeat4"]], "Named Arguments": [[13, "named-arguments"], [13, "named-arguments_repeat1"], [13, "named-arguments_repeat2"], [13, "named-arguments_repeat3"], [13, "named-arguments_repeat4"]], "Sub-commands": [[13, "Sub-commands"]], "generate": [[13, "generate"]], "export": [[13, "export"]], "emulate": [[13, "emulate"]], "check": [[13, "check"]], "Limitations": [[14, "limitations"]], "MC description specification": [[15, "mc-description-specification"]], "Overview": [[15, "overview"]], "machine": [[15, "machine"]], "machine.byteorder": [[15, "machine-byteorder"]], "machine.extras": [[15, "machine-extras"]], "instructions": [[15, "instructions"]], "instructions.name": [[15, "instructions-name"]], "instructions.format": [[15, "instructions-format"]], "instructions.match_condition": [[15, "instructions-match-condition"]], "Equality condition": [[15, "equality-condition"]], "In-a-set condition": [[15, "in-a-set-condition"]], "In-a-range condition": [[15, "in-a-range-condition"]], "Complex condition": [[15, "complex-condition"]], "Common expressions": [[15, "common-expressions"]], "instructions.unmatch_condition": [[15, "instructions-unmatch-condition"]], "instructions.extras": [[15, "instructions-extras"]], "instructions.field_extras": [[15, "instructions-field-extras"]], "decoder": [[15, "decoder"]], "decoder.namespace": [[15, "decoder-namespace"]], "decoder.process_instruction_hook": [[15, "decoder-process-instruction-hook"]], "extras": [[15, "extras"]], "Additional specifications": [[15, "additional-specifications"]], "!include tag": [[15, "include-tag"]], "Schema specification": [[15, "schema-specification"]], "MC decoder API specification": [[16, "mc-decoder-api-specification"]], "Usage": [[16, "usage"]], "Types": [[16, "types"]], "Macros": [[16, "macros"]], "Functions": [[16, "functions"]], "MC decoder model specification": [[17, "mc-decoder-model-specification"]], "Decoders": [[17, "decoders"]], "Conditions": [[17, "conditions"]], "Decision tree": [[17, "decision-tree"]], "Template variable specification": [[18, "template-variable-specification"]], "Specifications": [[19, "specifications"]], "User templates": [[20, "user-templates"]], "1. Add user-defined data to an MC description": [[20, "add-user-defined-data-to-an-mc-description"]], "2. Create user-defined template files": [[20, "create-user-defined-template-files"]], "3. Generate codes with the created template": [[20, "generate-codes-with-the-created-template"]], "Versioniong policy": [[21, "versioniong-policy"]], "Deprecation policy": [[21, "deprecation-policy"]], "Versioning policy": [[21, "versioning-policy"]]}, "indexentries": {"andidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.AndIdCondition"]], "bitrangedescription (class in mcdecoder.core)": [[9, "mcdecoder.core.BitRangeDescription"]], "decodecontext (class in mcdecoder.core)": [[9, "mcdecoder.core.DecodeContext"]], "decodecontextvectorized (class in mcdecoder.core)": [[9, "mcdecoder.core.DecodeContextVectorized"]], "equalityidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.EqualityIdCondition"]], "equalityinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription"]], "fieldidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.FieldIdConditionObject"]], "fieldinstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription"]], "functionidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.FunctionIdConditionObject"]], "functioninstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription"]], "immediateidconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.ImmediateIdConditionObject"]], "immediateinstructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.ImmediateInstructionConditionObjectDescription"]], "inidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InIdCondition"]], "ininstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InInstructionConditionDescription"]], "inrangeidcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InRangeIdCondition"]], "inrangeinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription"]], "instructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionConditionDescription"]], "instructionconditionobjectdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionConditionObjectDescription"]], "instructiondecoderesult (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecodeResult"]], "instructiondecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoder"]], "instructiondecodercondition (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoderCondition"]], "instructiondecoderconditionobject (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDecoderConditionObject"]], "instructiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionDescription"]], "instructionencodingdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionEncodingDescription"]], "instructionencodingelementdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionEncodingElementDescription"]], "instructionfielddecoderesult (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldDecodeResult"]], "instructionfielddecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldDecoder"]], "instructionfieldencodingdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription"]], "instructionsubfielddecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.InstructionSubfieldDecoder"]], "loaderror": [[9, "mcdecoder.core.LoadError"]], "logicalinstructionconditiondescription (class in mcdecoder.core)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription"]], "machinedecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.MachineDecoder"]], "machinedescription (class in mcdecoder.core)": [[9, "mcdecoder.core.MachineDescription"]], "mcdecoder (class in mcdecoder.core)": [[9, "mcdecoder.core.McDecoder"]], "mcdecoderdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.McDecoderDescription"]], "mcdescription (class in mcdecoder.core)": [[9, "mcdecoder.core.McDescription"]], "mcddecisionnode (class in mcdecoder.core)": [[9, "mcdecoder.core.McdDecisionNode"]], "mcddecisiontree (class in mcdecoder.core)": [[9, "mcdecoder.core.McdDecisionTree"]], "oridcondition (class in mcdecoder.core)": [[9, "mcdecoder.core.OrIdCondition"]], "__version__ (in module mcdecoder.__version__)": [[9, "mcdecoder.__version__.__version__"]], "all_nodes (mcdecoder.core.mcddecisionnode property)": [[9, "mcdecoder.core.McdDecisionNode.all_nodes"]], "arbitrary_bit_node (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.arbitrary_bit_node"]], "argument (mcdecoder.core.functionidconditionobject attribute)": [[9, "mcdecoder.core.FunctionIdConditionObject.argument"]], "argument (mcdecoder.core.functioninstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription.argument"]], "bit_length_of_character() (in module mcdecoder.common)": [[9, "mcdecoder.common.bit_length_of_character"]], "bit_ranges (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.bit_ranges"]], "bits_format (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.bits_format"]], "byteorder (mcdecoder.core.machinedecoder attribute)": [[9, "mcdecoder.core.MachineDecoder.byteorder"]], "byteorder (mcdecoder.core.machinedescription attribute)": [[9, "mcdecoder.core.MachineDescription.byteorder"]], "calc_instruction_bit_size() (in module mcdecoder.core)": [[9, "mcdecoder.core.calc_instruction_bit_size"]], "check() (in module mcdecoder.checker)": [[9, "mcdecoder.checker.check"]], "code16x1 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code16x1"]], "code16x1_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code16x1_vec"]], "code16x2 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code16x2"]], "code16x2_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code16x2_vec"]], "code32x1 (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.code32x1"]], "code32x1_vec (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.code32x1_vec"]], "conditions (mcdecoder.core.andidcondition attribute)": [[9, "mcdecoder.core.AndIdCondition.conditions"]], "conditions (mcdecoder.core.logicalinstructionconditiondescription attribute)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription.conditions"]], "conditions (mcdecoder.core.oridcondition attribute)": [[9, "mcdecoder.core.OrIdCondition.conditions"]], "convert_to_big_endian() (in module mcdecoder.common)": [[9, "mcdecoder.common.convert_to_big_endian"]], "create_mcdecoder_model() (in module mcdecoder.core)": [[9, "mcdecoder.core.create_mcdecoder_model"]], "decision_trees (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.decision_trees"]], "decode_instruction() (in module mcdecoder.core)": [[9, "mcdecoder.core.decode_instruction"]], "decoder (mcdecoder.core.instructiondecoderesult attribute)": [[9, "mcdecoder.core.InstructionDecodeResult.decoder"]], "decoder (mcdecoder.core.instructionfielddecoderesult attribute)": [[9, "mcdecoder.core.InstructionFieldDecodeResult.decoder"]], "decoder (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.decoder"]], "element_index (mcdecoder.core.fieldidconditionobject attribute)": [[9, "mcdecoder.core.FieldIdConditionObject.element_index"]], "element_index (mcdecoder.core.fieldinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription.element_index"]], "elements (mcdecoder.core.instructionencodingdescription attribute)": [[9, "mcdecoder.core.InstructionEncodingDescription.elements"]], "emulate() (in module mcdecoder.emulator)": [[9, "mcdecoder.emulator.emulate"]], "encoding_element_bit_length (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.encoding_element_bit_length"]], "encoding_element_bit_length (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.encoding_element_bit_length"]], "end (mcdecoder.core.bitrangedescription attribute)": [[9, "mcdecoder.core.BitRangeDescription.end"]], "end_bit_in_field (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.end_bit_in_field"]], "end_bit_in_instruction (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.end_bit_in_instruction"]], "export() (in module mcdecoder.exporter)": [[9, "mcdecoder.exporter.export"]], "extras (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.extras"]], "extras (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.extras"]], "extras (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.extras"]], "extras (mcdecoder.core.machinedecoder attribute)": [[9, "mcdecoder.core.MachineDecoder.extras"]], "extras (mcdecoder.core.machinedescription attribute)": [[9, "mcdecoder.core.MachineDescription.extras"]], "extras (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.extras"]], "extras (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.extras"]], "field (mcdecoder.core.fieldidconditionobject attribute)": [[9, "mcdecoder.core.FieldIdConditionObject.field"]], "field (mcdecoder.core.fieldinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FieldInstructionConditionObjectDescription.field"]], "field_decoders (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.field_decoders"]], "field_extras (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.field_extras"]], "field_results (mcdecoder.core.instructiondecoderesult property)": [[9, "mcdecoder.core.InstructionDecodeResult.field_results"]], "fields (mcdecoder.core.instructiondecoderesult attribute)": [[9, "mcdecoder.core.InstructionDecodeResult.fields"]], "fields (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fields"]], "fields (mcdecoder.core.instructionencodingelementdescription attribute)": [[9, "mcdecoder.core.InstructionEncodingElementDescription.fields"]], "find_matched_instructions() (in module mcdecoder.core)": [[9, "mcdecoder.core.find_matched_instructions"]], "find_matched_instructions_vectorized() (in module mcdecoder.core)": [[9, "mcdecoder.core.find_matched_instructions_vectorized"]], "fixed_bit_mask (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bit_mask"]], "fixed_bit_nodes (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.fixed_bit_nodes"]], "fixed_bits (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bits"]], "fixed_bits_mask (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.fixed_bits_mask"]], "format (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.format"]], "function (mcdecoder.core.functionidconditionobject attribute)": [[9, "mcdecoder.core.FunctionIdConditionObject.function"]], "function (mcdecoder.core.functioninstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.FunctionInstructionConditionObjectDescription.function"]], "generate() (in module mcdecoder.generator)": [[9, "mcdecoder.generator.generate"]], "index (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.index"]], "index (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.index"]], "instruction_decoders (mcdecoder.core.mcdecoder property)": [[9, "mcdecoder.core.McDecoder.instruction_decoders"]], "instructions (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.instructions"]], "instructions (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.instructions"]], "instructions (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.instructions"]], "length_of_encoding_elements (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.length_of_encoding_elements"]], "length_of_encoding_elements (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.length_of_encoding_elements"]], "load_mc_description() (in module mcdecoder.core)": [[9, "mcdecoder.core.load_mc_description"]], "lsb_in_field (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.lsb_in_field"]], "lsb_in_instruction (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.lsb_in_instruction"]], "machine (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.machine"]], "machine (mcdecoder.core.mcdescription attribute)": [[9, "mcdecoder.core.McDescription.machine"]], "machine_decoder (mcdecoder.core.mcdecoder property)": [[9, "mcdecoder.core.McDecoder.machine_decoder"]], "main() (in module mcdecoder.__main__)": [[9, "mcdecoder.__main__.main"]], "make_mask() (in module mcdecoder.common)": [[9, "mcdecoder.common.make_mask"]], "make_parent_directories() (in module mcdecoder.common)": [[9, "mcdecoder.common.make_parent_directories"]], "mask (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.mask"]], "mask (mcdecoder.core.mcddecisionnode attribute)": [[9, "mcdecoder.core.McdDecisionNode.mask"]], "match_condition (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.match_condition"]], "match_condition (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.match_condition"]], "mcdecoder (mcdecoder.core.decodecontext attribute)": [[9, "mcdecoder.core.DecodeContext.mcdecoder"]], "mcdecoder (mcdecoder.core.decodecontextvectorized attribute)": [[9, "mcdecoder.core.DecodeContextVectorized.mcdecoder"]], "mcdecoder.__main__": [[9, "module-mcdecoder.__main__"]], "mcdecoder.__version__": [[9, "module-mcdecoder.__version__"]], "mcdecoder.app": [[9, "module-mcdecoder.app"]], "mcdecoder.checker": [[9, "module-mcdecoder.checker"]], "mcdecoder.common": [[9, "module-mcdecoder.common"]], "mcdecoder.core": [[9, "module-mcdecoder.core"]], "mcdecoder.emulator": [[9, "module-mcdecoder.emulator"]], "mcdecoder.exporter": [[9, "module-mcdecoder.exporter"]], "mcdecoder.generator": [[9, "module-mcdecoder.generator"]], "message (mcdecoder.core.loaderror attribute)": [[9, "mcdecoder.core.LoadError.message"]], "module": [[9, "module-mcdecoder.__main__"], [9, "module-mcdecoder.__version__"], [9, "module-mcdecoder.app"], [9, "module-mcdecoder.checker"], [9, "module-mcdecoder.common"], [9, "module-mcdecoder.core"], [9, "module-mcdecoder.emulator"], [9, "module-mcdecoder.exporter"], [9, "module-mcdecoder.generator"]], "msb_in_instruction (mcdecoder.core.instructionsubfielddecoder attribute)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.msb_in_instruction"]], "name (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.name"]], "name (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.name"]], "name (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.name"]], "name (mcdecoder.core.instructionfieldencodingdescription attribute)": [[9, "mcdecoder.core.InstructionFieldEncodingDescription.name"]], "namespace (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.namespace"]], "namespace (mcdecoder.core.mcdecoderdescription attribute)": [[9, "mcdecoder.core.McDecoderDescription.namespace"]], "namespace_prefix (mcdecoder.core.mcdecoder attribute)": [[9, "mcdecoder.core.McDecoder.namespace_prefix"]], "object (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.object"]], "object (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.object"]], "operator (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.operator"]], "operator (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.operator"]], "operator (mcdecoder.core.logicalinstructionconditiondescription attribute)": [[9, "mcdecoder.core.LogicalInstructionConditionDescription.operator"]], "pad_trailing_zeros() (in module mcdecoder.common)": [[9, "mcdecoder.common.pad_trailing_zeros"]], "parse_instruction_encoding() (in module mcdecoder.core)": [[9, "mcdecoder.core.parse_instruction_encoding"]], "process_instruction_hook (mcdecoder.core.mcdecoderdescription attribute)": [[9, "mcdecoder.core.McDecoderDescription.process_instruction_hook"]], "root_node (mcdecoder.core.mcddecisiontree attribute)": [[9, "mcdecoder.core.McdDecisionTree.root_node"]], "run_app() (in module mcdecoder.app)": [[9, "mcdecoder.app.run_app"]], "start (mcdecoder.core.bitrangedescription attribute)": [[9, "mcdecoder.core.BitRangeDescription.start"]], "start_bit_in_instruction (mcdecoder.core.instructionsubfielddecoder property)": [[9, "mcdecoder.core.InstructionSubfieldDecoder.start_bit_in_instruction"]], "string_length_for_byte() (in module mcdecoder.common)": [[9, "mcdecoder.common.string_length_for_byte"]], "subfield_decoders (mcdecoder.core.instructionfielddecoder property)": [[9, "mcdecoder.core.InstructionFieldDecoder.subfield_decoders"]], "subfields (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.subfields"]], "subject (mcdecoder.core.equalityidcondition attribute)": [[9, "mcdecoder.core.EqualityIdCondition.subject"]], "subject (mcdecoder.core.equalityinstructionconditiondescription attribute)": [[9, "mcdecoder.core.EqualityInstructionConditionDescription.subject"]], "subject (mcdecoder.core.inidcondition attribute)": [[9, "mcdecoder.core.InIdCondition.subject"]], "subject (mcdecoder.core.ininstructionconditiondescription attribute)": [[9, "mcdecoder.core.InInstructionConditionDescription.subject"]], "subject (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.subject"]], "subject (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.subject"]], "trim_whitespace() (in module mcdecoder.common)": [[9, "mcdecoder.common.trim_whitespace"]], "type (mcdecoder.core.andidcondition property)": [[9, "mcdecoder.core.AndIdCondition.type"]], "type (mcdecoder.core.equalityidcondition property)": [[9, "mcdecoder.core.EqualityIdCondition.type"]], "type (mcdecoder.core.fieldidconditionobject property)": [[9, "mcdecoder.core.FieldIdConditionObject.type"]], "type (mcdecoder.core.functionidconditionobject property)": [[9, "mcdecoder.core.FunctionIdConditionObject.type"]], "type (mcdecoder.core.immediateidconditionobject property)": [[9, "mcdecoder.core.ImmediateIdConditionObject.type"]], "type (mcdecoder.core.inidcondition property)": [[9, "mcdecoder.core.InIdCondition.type"]], "type (mcdecoder.core.inrangeidcondition property)": [[9, "mcdecoder.core.InRangeIdCondition.type"]], "type (mcdecoder.core.instructiondecodercondition property)": [[9, "mcdecoder.core.InstructionDecoderCondition.type"]], "type (mcdecoder.core.instructiondecoderconditionobject property)": [[9, "mcdecoder.core.InstructionDecoderConditionObject.type"]], "type (mcdecoder.core.oridcondition property)": [[9, "mcdecoder.core.OrIdCondition.type"]], "type_bit_length (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.type_bit_length"]], "type_bit_length (mcdecoder.core.instructionfielddecoder attribute)": [[9, "mcdecoder.core.InstructionFieldDecoder.type_bit_length"]], "type_bit_size (mcdecoder.core.instructiondecoder property)": [[9, "mcdecoder.core.InstructionDecoder.type_bit_size"]], "type_bit_size (mcdecoder.core.instructionfielddecoder property)": [[9, "mcdecoder.core.InstructionFieldDecoder.type_bit_size"]], "unmatch_condition (mcdecoder.core.instructiondecoder attribute)": [[9, "mcdecoder.core.InstructionDecoder.unmatch_condition"]], "unmatch_condition (mcdecoder.core.instructiondescription attribute)": [[9, "mcdecoder.core.InstructionDescription.unmatch_condition"]], "value (mcdecoder.core.immediateidconditionobject attribute)": [[9, "mcdecoder.core.ImmediateIdConditionObject.value"]], "value (mcdecoder.core.immediateinstructionconditionobjectdescription attribute)": [[9, "mcdecoder.core.ImmediateInstructionConditionObjectDescription.value"]], "value (mcdecoder.core.instructionfielddecoderesult attribute)": [[9, "mcdecoder.core.InstructionFieldDecodeResult.value"]], "value_end (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.value_end"]], "value_end (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.value_end"]], "value_start (mcdecoder.core.inrangeidcondition attribute)": [[9, "mcdecoder.core.InRangeIdCondition.value_start"]], "value_start (mcdecoder.core.inrangeinstructionconditiondescription attribute)": [[9, "mcdecoder.core.InRangeInstructionConditionDescription.value_start"]], "values (mcdecoder.core.inidcondition attribute)": [[9, "mcdecoder.core.InIdCondition.values"]], "values (mcdecoder.core.ininstructionconditiondescription attribute)": [[9, "mcdecoder.core.InInstructionConditionDescription.values"]], "decodeinstruction (c function)": [[16, "c.DecodeInstruction"]], "decoderequest (c struct)": [[16, "c.DecodeRequest"]], "decoderequest.codes (c member)": [[16, "c.DecodeRequest.codes"]], "decoderesult (c struct)": [[16, "c.DecodeResult"]], "decoderesult.instruction (c union)": [[16, "c.DecodeResult.instruction"]], "decoderesult.instruction_id (c member)": [[16, "c.DecodeResult.instruction_id"]], "instruction_id_max (c var)": [[16, "c.INSTRUCTION_ID_MAX"]], "instructionid (c enum)": [[16, "c.InstructionId"]], "instructionid.instructionid_kunknown (c enumerator)": [[16, "c.InstructionId.InstructionId_kUnknown"]]}}) \ No newline at end of file