From 12ee099cad10cf93948239bb4b44966d60ffc8af Mon Sep 17 00:00:00 2001 From: iximeow Date: Fri, 7 May 2021 18:29:35 -0700 Subject: add 6502 support via yaxpeax-6502, update other decoders, yaxpeax-arch to 0.0.5 yaxdis should now work on Windows? --- Cargo.lock | 329 +++++++++++++++++++++++++++++++++++++++++++----------------- Cargo.toml | 25 ++--- README.md | 2 +- src/main.rs | 5 +- 4 files changed, 254 insertions(+), 107 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7397edc..779efbe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "ansi_term" version = "0.11.0" @@ -22,9 +24,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "bitflags" @@ -34,9 +36,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitvec" -version = "0.19.3" +version = "0.19.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11593270830d9b037fbead730bb0c05ef6fbf6be55537a1e8e5892edef7e1f03" +checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" dependencies = [ "funty", "radium", @@ -45,10 +47,16 @@ dependencies = [ ] [[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] name = "clap" -version = "2.33.0" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term", "atty", @@ -60,37 +68,126 @@ dependencies = [ ] [[package]] +name = "crossterm" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c36c10130df424b2f3552fcc2ddcd9b28a27b1e54b358b45874f88d1ca6888c" +dependencies = [ + "bitflags", + "crossterm_winapi", + "lazy_static", + "libc", + "mio", + "parking_lot", + "signal-hook", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da8964ace4d3e4a044fd027919b2237000b24315a37c916f61809f1ff2140b9" +dependencies = [ + "winapi", +] + +[[package]] name = "funty" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] name = "hermit-abi" -version = "0.1.12" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" dependencies = [ "libc", ] [[package]] name = "hex" -version = "0.4.2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "instant" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.69" +version = "0.2.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" +checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" + +[[package]] +name = "lock_api" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "mio" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "winapi", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi", +] [[package]] name = "num-traits" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", ] @@ -107,10 +204,29 @@ dependencies = [ ] [[package]] -name = "numtoa" -version = "0.1.0" +name = "parking_lot" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" +checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] [[package]] name = "proc-macro2" @@ -123,11 +239,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.12" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" dependencies = [ - "unicode-xid 0.2.0", + "unicode-xid 0.2.2", ] [[package]] @@ -141,11 +257,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.4" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.12", + "proc-macro2 1.0.26", ] [[package]] @@ -156,37 +272,63 @@ checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" [[package]] name = "redox_syscall" -version = "0.1.56" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" +checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" +dependencies = [ + "bitflags", +] [[package]] -name = "redox_termios" -version = "0.1.1" +name = "scopeguard" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -dependencies = [ - "redox_syscall", -] +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "serde" -version = "1.0.106" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" +checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" [[package]] name = "serde_derive" -version = "1.0.106" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" +checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" dependencies = [ - "proc-macro2 1.0.12", - "quote 1.0.4", - "syn 1.0.18", + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.72", ] [[package]] +name = "signal-hook" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +dependencies = [ + "libc", + "mio", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" +dependencies = [ + "libc", +] + +[[package]] +name = "smallvec" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" + +[[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -205,32 +347,26 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.18" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" +checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" dependencies = [ - "proc-macro2 1.0.12", - "quote 1.0.4", - "unicode-xid 0.2.0", + "proc-macro2 1.0.26", + "quote 1.0.9", + "unicode-xid 0.2.2", ] [[package]] -name = "tap" -version = "1.0.0" +name = "take_mut" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" [[package]] -name = "termion" -version = "1.5.5" +name = "tap" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905" -dependencies = [ - "libc", - "numtoa", - "redox_syscall", - "redox_termios", -] +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "textwrap" @@ -243,9 +379,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" @@ -255,21 +391,21 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "vec_map" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -294,23 +430,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" [[package]] +name = "yaxpeax-6502" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53afe49cd799784eeefe7108efd48852ea83673d55d98389a563532f05c5ea3" +dependencies = [ + "take_mut", + "yaxpeax-arch", +] + +[[package]] name = "yaxpeax-arch" -version = "0.0.4" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d4d184a208255bb62f2d55c3875ee3fe459f2b8d9190b8427986b91d11ced7f" +checksum = "c6d51fa58dc03a872cf25e864c5edeb57a00a0be1e99112fe9b620eed839f035" dependencies = [ + "crossterm", "num-traits", "serde", "serde_derive", - "termion", ] [[package]] name = "yaxpeax-arm" -version = "0.0.4" +version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd9ff5d85124b77a3c251585a72ab7db55af2ef2b178f43501c975005a21ad" +checksum = "dda1e95c1c611f9348b9fe6a482f0abed62bda5bc75e05932668194a3b7bb3f5" dependencies = [ + "bitvec", "serde", "serde_derive", "yaxpeax-arch", @@ -318,20 +465,21 @@ dependencies = [ [[package]] name = "yaxpeax-avr" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a767283270a42006714135ba24b6d0ca6282d802e3bb553569143fea948641" +checksum = "b8373ea37d880943258d4f5123cba4029514b95c386b7c0dd085cd3537b1c632" dependencies = [ "yaxpeax-arch", ] [[package]] name = "yaxpeax-dis" -version = "0.2.3" +version = "0.2.4" dependencies = [ "clap", "hex", "num-traits", + "yaxpeax-6502", "yaxpeax-arch", "yaxpeax-arm", "yaxpeax-avr", @@ -347,9 +495,9 @@ dependencies = [ [[package]] name = "yaxpeax-ia64" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c30aa31831bd95d03a6c0f03b3f24a4beba1ec577be36da789df9b5ad3cb828a" +checksum = "222f39266a267206a47b08e01b26a782c8080b933223d112e7932c453f869a45" dependencies = [ "bitvec", "yaxpeax-arch", @@ -357,9 +505,9 @@ dependencies = [ [[package]] name = "yaxpeax-m16c" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b521aff3978cf531339f6ed9ad695f7e056ce386000a3df185f67114b6e541fe" +checksum = "1809e45640571ec956d594589ccbc4de2929db609494224fb793dad7735c9233" dependencies = [ "num-traits", "serde", @@ -369,58 +517,55 @@ dependencies = [ [[package]] name = "yaxpeax-mips" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee69235e33a2ca10d3cf8ee9489f1afc626f74d1de9c35519f2b74c9dbd9a03" +checksum = "825d4301049003b56b420798f3819c4ff46e0927dc50c1c5f69c5b2f02e2ff8d" dependencies = [ "num_enum", - "termion", "yaxpeax-arch", ] [[package]] name = "yaxpeax-msp430" -version = "0.0.5" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556fe4705aaadc1e14375550e6f344976958f930580adf32388c150cb8e1f24" +checksum = "1f5ea01451a1766614d88911c648ec3b98db377af51402ded1c6e03cafbbd906" dependencies = [ - "termion", "yaxpeax-arch", ] [[package]] name = "yaxpeax-pic17" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb949b4c5d7afb8210cbaa3d1f2153d12bcac9dd81167dc6275f9f0fb243fb98" +checksum = "744a545b8aa7e370587188e890a1e07c094b52f3b1da21ff0812602a4bd4b75c" dependencies = [ - "termion", "yaxpeax-arch", ] [[package]] name = "yaxpeax-pic18" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5a722e1de4671c1cfe46f54ebe21fe3233823e62d8cc33d698f50b5fcf2e19" +checksum = "16a979e0519c5de64aadf1bc1484ecf3bef80f2cf15670f2743d57b0506d8562" dependencies = [ "yaxpeax-arch", ] [[package]] name = "yaxpeax-superh" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02789f779dd874674062a7407a1faadcb4dbbb70b313b465a2bdbb562bb4d1f7" +checksum = "c04d16d2b60e7961ace2b8624c12295e86babb3b8a6615a4238bbb823ba0936e" dependencies = [ "yaxpeax-arch", ] [[package]] name = "yaxpeax-x86" -version = "0.1.5" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e59dbce1199c094a26c5eac53124375851ca5023e1227b0fa4447fc2508af7" +checksum = "429b69c99d9da2e4858adf192ba788607d84e50b008a3d607ac326fdc7746cf8" dependencies = [ "num-traits", "serde", diff --git a/Cargo.toml b/Cargo.toml index cfb77ff..525623d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "yaxpeax-dis" -version = "0.2.3" +version = "0.2.4" authors = ["iximeow "] license = "0BSD" edition = "2018" @@ -19,15 +19,16 @@ hex = "0.4.0" num-traits = "0.2.10" # common interfaces for all yaxpeax decoders -yaxpeax-arch = { version = "0.0.4" } +yaxpeax-arch = { version = "0.0.5" } -yaxpeax-arm = { version = "0.0.4" } -yaxpeax-avr = { version = "0.0.2" } -yaxpeax-m16c = { version = "0.0.3" } -yaxpeax-mips = { version = "0.0.3" } -yaxpeax-msp430 = { version = "0.0.5" } -yaxpeax-pic17 = { version = "0.0.3" } -yaxpeax-pic18 = { version = "0.0.3" } -yaxpeax-x86 = { version = "0.1.5" } -yaxpeax-ia64 = { version = "0.1.3" } -yaxpeax-superh = { version = "0.1.0" } +yaxpeax-arm = { version = "0.0.7" } +yaxpeax-avr = { version = "0.0.3" } +yaxpeax-m16c = { version = "0.0.4" } +yaxpeax-mips = { version = "0.0.4" } +yaxpeax-msp430 = { version = "0.0.6" } +yaxpeax-pic17 = { version = "0.0.4" } +yaxpeax-pic18 = { version = "0.0.4" } +yaxpeax-x86 = { version = "0.2.0" } +yaxpeax-ia64 = { version = "0.1.4" } +yaxpeax-superh = { version = "0.1.1" } +yaxpeax-6502 = { version = "0.0.1" } diff --git a/README.md b/README.md index 3df0fac..dcc7df0 100644 --- a/README.md +++ b/README.md @@ -24,4 +24,4 @@ or `yaxdis -a ia64 e38000000061e200000042c0e1803080`, producing: `yaxdis` also takes a `-v` flag to emit more verbose information (really, a `Debug` display of decoded instructions). ## supported architectures / ! user beware ! -`yaxdis` should support all architectures listed in the [yaxpeax-arch readme](https://git.iximeow.net/yaxpeax-arch/). that is currently `x86_64`, `armv7`, `armv8`, `mips`, `msp430`, `pic17`, `pic18`, `m16c`, `avr`, `ia64`, and `sh`/`sh2`/`j2`/`sh3`/`sh4`. specific levels of support and stability vary, beware. +`yaxdis` should support all architectures listed in the [yaxpeax-arch readme](https://git.iximeow.net/yaxpeax-arch/). that is currently `x86_64`, `armv7`, `armv8`, `mips`, `msp430`, `pic17`, `pic18`, `m16c`, `avr`, `ia64`, `6502`, and `sh`/`sh2`/`j2`/`sh3`/`sh4`. specific levels of support and stability vary, beware. diff --git a/src/main.rs b/src/main.rs index 99d7ad3..f577a42 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,7 +18,7 @@ fn main() { .takes_value(true) .validator(|a| { if ["x86_64", "x86:32", "ia64", "armv7", "armv8", "avr", "mips", "msp430", - "pic17", "pic18", "m16c"].contains(&&a[..]) || + "pic17", "pic18", "m16c", "6502"].contains(&&a[..]) || (["sh", "sh2", "sh3", "sh4", "j2"].contains( &&a[0..a.find(|c| c == '+' || c == '-').unwrap_or(a.len())]) && a.split(|c| c == '+' || c == '-').skip(1).all( @@ -26,7 +26,7 @@ fn main() { Ok(()) } else { Err("possible values: x86_64, x86:32, ia64, armv7, armv8, avr, mips, \ - msp430, pic17, pic18, m16c, \ + msp430, pic17, pic18, m16c, 6502, \ {sh{,2,3,4},j2}[[+-]{be,mmu,fpu,f64,j2}]*" .to_string()) } @@ -95,6 +95,7 @@ fn main() { "pic17" => decode_input::(&buf, verbose), "pic18" => decode_input::(&buf, verbose), "m16c" => decode_input::(&buf, verbose), + "6502" => decode_input::(&buf, verbose), // "pic24" => decode_input::(buf), other => { let seg_idx = arch_str.find(|c| c == '+' || c == '-').unwrap_or(arch_str.len()); -- cgit v1.1