[INFO] cloning repository https://github.com/Soya-Onishi/rust-riscv
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Soya-Onishi/rust-riscv" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSoya-Onishi%2Frust-riscv", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSoya-Onishi%2Frust-riscv'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2a2451d33aa91afb2bc9b78e2db2b532a93e184c
[INFO] checking Soya-Onishi/rust-riscv/2a2451d33aa91afb2bc9b78e2db2b532a93e184c against master#b0696a5160711c068cb1f01b7437db7990d15750 for pr-121848
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSoya-Onishi%2Frust-riscv" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Soya-Onishi/rust-riscv on toolchain b0696a5160711c068cb1f01b7437db7990d15750
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Soya-Onishi/rust-riscv
[INFO] finished tweaking git repo https://github.com/Soya-Onishi/rust-riscv
[INFO] tweaked toml for git repo https://github.com/Soya-Onishi/rust-riscv written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 26daf5a3737c64764f620a4e7159974934c03b077a43933716e9d8fdd5950e54
[INFO] running `Command { std: "docker" "start" "-a" "26daf5a3737c64764f620a4e7159974934c03b077a43933716e9d8fdd5950e54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "26daf5a3737c64764f620a4e7159974934c03b077a43933716e9d8fdd5950e54", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26daf5a3737c64764f620a4e7159974934c03b077a43933716e9d8fdd5950e54", kill_on_drop: false }`
[INFO] [stdout] 26daf5a3737c64764f620a4e7159974934c03b077a43933716e9d8fdd5950e54
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5410e17c5f3fef1ce39a51e431aed717e7b8ba2b038d391b633a50ecd2e3cf16
[INFO] running `Command { std: "docker" "start" "-a" "5410e17c5f3fef1ce39a51e431aed717e7b8ba2b038d391b633a50ecd2e3cf16", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]     Checking plain v0.2.3
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking paste v0.1.18
[INFO] [stderr]    Compiling scroll_derive v0.10.5
[INFO] [stderr]     Checking scroll v0.10.2
[INFO] [stderr]     Checking goblin v0.2.3
[INFO] [stderr]     Checking rust-riscv v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Emulator` is never constructed
[INFO] [stdout]   --> src/lib.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Emulator {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lib.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl Emulator {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 22  |     pub fn new_with_elf_file(filename: String) -> Result<Emulator, Box<dyn error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     pub fn new_with_binary(binary: Vec<u8>) -> Result<Emulator, Box<dyn error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48  |     fn make_core(elf: &Elf, binary: &Vec<u8>) -> core::Core {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     fn get_label(elf: &Elf) -> Result<HashMap<String, u32>, Box<dyn error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn step(&mut self, num: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn is_breakpoint(&self, pc: u32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn set_breakpoint_with_string(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn set_breakpoint_with_addr(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/lib.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl ErrorMsg {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 132 |     pub fn new(msg: String) -> ErrorMsg {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Core` is never constructed
[INFO] [stdout]   --> src/core.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Core {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `execute`, `execute_one_instrunction`, `fetch`, and `raise_exception` are never used
[INFO] [stdout]   --> src/core.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Core {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn new(delay_cycle: usize, use_builtin_exception_handler: bool) -> Core {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn execute(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn execute_one_instrunction(&mut self) -> Result<(), Exception>{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn fetch(&self) -> Result<u32, Exception> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn raise_exception(&mut self, exp: Exception) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CSRFile` is never constructed
[INFO] [stdout]  --> src/core/csr.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CSRFile {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/csr.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout] 12  | impl CSRFile {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 13  |     pub fn new() -> CSRFile {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39  |     pub fn write(&mut self, addr: usize, value: u32, inst: u32) -> Result<(), Exception>{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     fn write_csr(&mut self, addr: usize, value: u32, mask: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     fn write_hpm_counter(&mut self, addr: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81  |     fn write_hpm_counterh(&mut self, addr: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     fn write_hpm_event(&mut self, addr: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn read(&self, addr: usize, inst: u32) -> Result<u32, Exception> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn read_hpm_counter(&self, addr: usize) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn read_hpm_counter_h(&self, addr: usize) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn make_exception_vector(&self, e: Exception) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn get_mie(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn set_mie(&mut self, value: bool) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn get_mpie(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn set_mpie(&mut self, value: bool) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn get_mpp(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn set_mpp(&mut self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_VENDOR_ID` is never used
[INFO] [stdout]    --> src/core/csr.rs:170:11
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub const M_VENDOR_ID: usize = 0xF11;
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_ARCH_ID` is never used
[INFO] [stdout]    --> src/core/csr.rs:171:11
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub const M_ARCH_ID: usize = 0xF12;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_IMP_ID` is never used
[INFO] [stdout]    --> src/core/csr.rs:172:11
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub const M_IMP_ID: usize = 0xF13;
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_HARD_ID` is never used
[INFO] [stdout]    --> src/core/csr.rs:173:11
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub const M_HARD_ID: usize = 0xF14;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_STATUS` is never used
[INFO] [stdout]    --> src/core/csr.rs:175:11
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub const M_STATUS: usize = 0x300;
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_ISA` is never used
[INFO] [stdout]    --> src/core/csr.rs:176:11
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub const M_ISA: usize = 0x301;
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_E_DELEG` is never used
[INFO] [stdout]    --> src/core/csr.rs:177:11
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub const M_E_DELEG: usize = 0x302;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_I_DELEG` is never used
[INFO] [stdout]    --> src/core/csr.rs:178:11
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub const M_I_DELEG: usize = 0x303;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_IE` is never used
[INFO] [stdout]    --> src/core/csr.rs:179:11
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub const M_IE: usize = 0x304;
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_T_VEC` is never used
[INFO] [stdout]    --> src/core/csr.rs:180:11
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub const M_T_VEC: usize = 0x305;
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_COUNTER_EN` is never used
[INFO] [stdout]    --> src/core/csr.rs:181:11
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub const M_COUNTER_EN: usize = 0x306;
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_COUNT_INHIBIT` is never used
[INFO] [stdout]    --> src/core/csr.rs:183:11
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub const M_COUNT_INHIBIT: usize = 0x320;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_HPM_EVENT_BASE` is never used
[INFO] [stdout]    --> src/core/csr.rs:184:11
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub const M_HPM_EVENT_BASE: usize = 0x320;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_SCRATCH` is never used
[INFO] [stdout]    --> src/core/csr.rs:186:11
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub const M_SCRATCH: usize = 0x340;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_E_PC` is never used
[INFO] [stdout]    --> src/core/csr.rs:187:11
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub const M_E_PC: usize = 0x341;
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_CAUSE` is never used
[INFO] [stdout]    --> src/core/csr.rs:188:11
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub const M_CAUSE: usize = 0x342;
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_T_VAL` is never used
[INFO] [stdout]    --> src/core/csr.rs:189:11
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub const M_T_VAL: usize = 0x343;
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_IP` is never used
[INFO] [stdout]    --> src/core/csr.rs:190:11
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub const M_IP: usize = 0x344;
[INFO] [stdout]     |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_CYCLE` is never used
[INFO] [stdout]    --> src/core/csr.rs:192:11
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub const M_CYCLE: usize = 0xB00;
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_INST_RET` is never used
[INFO] [stdout]    --> src/core/csr.rs:193:11
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub const M_INST_RET: usize = 0xB02;
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_HPM_COUNTER_BASE` is never used
[INFO] [stdout]    --> src/core/csr.rs:194:11
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub const M_HPM_COUNTER_BASE: usize = 0xB00;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_CYCLE_H` is never used
[INFO] [stdout]    --> src/core/csr.rs:195:11
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub const M_CYCLE_H: usize = 0xB80;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_INST_RET_H` is never used
[INFO] [stdout]    --> src/core/csr.rs:196:11
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub const M_INST_RET_H: usize = 0xB82;
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `M_HPM_COUNTER_H_BASE` is never used
[INFO] [stdout]    --> src/core/csr.rs:197:11
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub const M_HPM_COUNTER_H_BASE: usize = 0xB80;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hpm_counter_range` is never used
[INFO] [stdout]    --> src/core/csr.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn is_hpm_counter_range(addr: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hpm_counter_h_range` is never used
[INFO] [stdout]    --> src/core/csr.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn is_hpm_counter_h_range(addr: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hpm_event_range` is never used
[INFO] [stdout]    --> src/core/csr.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn is_hpm_event_range(addr: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CSR_ADDR_LIST` is never used
[INFO] [stdout]    --> src/core/csr.rs:211:7
[INFO] [stdout]     |
[INFO] [stdout] 211 | const CSR_ADDR_LIST: [usize; 21] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `default` and `regs` are never read
[INFO] [stdout]  --> src/core/reg.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct RegFile<T>
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 4 |     default: T,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 5 |     regs: [T; 32],
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read` and `write` are never used
[INFO] [stdout]   --> src/core/reg.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | / impl<T> RegFile<T>
[INFO] [stdout] 9  | |     where T: Copy
[INFO] [stdout]    | |_________________- methods in this implementation
[INFO] [stdout] 10 |   {
[INFO] [stdout] 11 |       pub fn read(&self, addr: usize) -> T {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |       pub fn write(&mut self, addr: usize, value: T) {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/core/reg.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl RegFile<u32> {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn new() -> RegFile<u32> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MMU` is never constructed
[INFO] [stdout]   --> src/core/memory.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct MMU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/core/memory.rs:9:16
[INFO] [stdout]    |
[INFO] [stdout] 9  |               fn [<read_ $tpe _impl>](&self, address: u32) -> Result<$tpe, Exception>{
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |               fn [<write_ $tpe _impl>](&mut self, address: u32, value: $tpe) -> Result<(), Exception> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |   impl MMU {
[INFO] [stdout]    |   -------- associated items in this implementation
[INFO] [stdout] 40 |       pub fn new() -> MMU {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 | /     make_interface!(
[INFO] [stdout] 48 | |         {  u8, 1 }
[INFO] [stdout] 49 | |         { u16, 2 }
[INFO] [stdout] 50 | |         { u32, 4 }
[INFO] [stdout] 51 | |     );
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout] 52 |
[INFO] [stdout] 53 |       pub fn  read_u8(&self, address: u32) -> Result< u8, Exception> { self.read_u8_impl(address) }
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 54 |       pub fn read_u16(&self, address: u32) -> Result<u16, Exception> { self.read_u16_impl(address) }
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 55 |       pub fn read_u32(&self, address: u32) -> Result<u32, Exception> { self.read_u32_impl(address) }
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 56 |
[INFO] [stdout] 57 |       pub fn  write_u8(&mut self, address: u32, value:  u8) -> Result<(), Exception>{ self.write_u8_impl(address, value) }
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 58 |       pub fn write_u16(&mut self, address: u32, value: u16) -> Result<(), Exception> { self.write_u16_impl(address, value) }
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 59 |       pub fn write_u32(&mut self, address: u32, value: u32) -> Result<(), Exception> { self.write_u32_impl(address, value) }
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 60 |
[INFO] [stdout] 61 |       fn read(&self, address: u32) -> u8 {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |       fn write(&mut self, address: u32, value: u8) {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |       pub fn set_reservation(&mut self, addr: u32) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |       pub fn yield_reservation(&mut self) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |       pub fn check_reservation(&self, addr: u32) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `make_interface` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `separate_addr` is never used
[INFO] [stdout]   --> src/core/memory.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn separate_addr(address: u32) -> (usize, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchManager` is never constructed
[INFO] [stdout]  --> src/core/branch_manager.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct BranchManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_queue`, `pop_queue`, and `flush_queue` are never used
[INFO] [stdout]   --> src/core/branch_manager.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl BranchManager {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 7  |     pub fn new(delay_cycle: usize) -> BranchManager {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn push_queue(&mut self, address: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn pop_queue(&mut self) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn flush_queue(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]   --> src/util/instruction.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Instruction {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/util/instruction.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl Instruction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 17  |     pub fn new(inst: u32) -> Result<Instruction, Exception> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21  |     fn rs1(&self) -> usize {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31  |     fn rs2(&self) -> usize {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40  |     fn rd(&self) -> usize {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 50  |     fn imm(&self) -> u32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn lui(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn auipc(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn jal(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn jalr(&self, core: &mut Core) -> Result<(), Exception>{
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn branch(&self, core: &mut Core, f: impl Fn(u32, u32) -> bool) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn beq(&self, core: &mut Core) -> Result<(), Exception> { self.branch(core, |a, b| a == b) }
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 158 |     fn bne(&self, core: &mut Core) -> Result<(), Exception> { self.branch(core, |a, b| a != b) }
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 159 |     fn blt(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn bge(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn bltu(&self, core: &mut Core) -> Result<(), Exception> { self.branch(core, |a, b| a < b) }
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 176 |     fn bgeu(&self, core: &mut Core) -> Result<(), Exception> { self.branch(core, |a, b| a >= b) }
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 177 |
[INFO] [stdout] 178 |     fn load<T: Into<u32>>(&self, core: &mut Core, byte_count: u32, use_sign_ext: bool, loader: impl Fn(&MMU, u32) -> Result<T, Exception>...
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     fn lb(&self, core: &mut Core) -> Result<(), Exception> { self.load(core, 1, true, MMU::read_u8) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 191 |     fn lh(&self, core: &mut Core) -> Result<(), Exception> { self.load(core, 2, true, MMU::read_u16) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 192 |     fn lw(&self, core: &mut Core) -> Result<(), Exception> { self.load(core, 4, true, MMU::read_u32) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 193 |     fn lbu(&self, core: &mut Core) -> Result<(), Exception> { self.load(core, 1, false, MMU::read_u8) }
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 194 |     fn lhu(&self, core: &mut Core) -> Result<(), Exception> { self.load(core, 2, false, MMU::read_u16) }
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 195 |
[INFO] [stdout] 196 |     fn store<T>(&self, core: &mut Core, storer: impl Fn(&mut MMU, u32, T) -> Result<(), Exception>, caster: impl Fn(u32) -> T) -> Result<...
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn sb(&self, core: &mut Core) -> Result<(), Exception> { self.store(core, MMU::write_u8, |v| v as u8) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 212 |     fn sh(&self, core: &mut Core) -> Result<(), Exception> { self.store(core, MMU::write_u16, |v| v as u16) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 213 |     fn sw(&self, core: &mut Core) -> Result<(), Exception> { self.store(core, MMU::write_u32, |v| v) }
[INFO] [stdout]     |        ^^
[INFO] [stdout] 214 |
[INFO] [stdout] 215 |     fn rs1_imm_ops(&self, core: &mut Core, f: impl Fn(u32, u32) -> u32) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn addi(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn slti(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn sltiu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn xori(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn ori(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     fn andi(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn slli(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn srli(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn srai(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn rs1_rs2_ops(&self, core: &mut Core, f: impl Fn(u32, u32) -> u32) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn add(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn sub(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn xor(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn or(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn and(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn slt(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     fn sltu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn sll(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn srl(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn sra(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn mul(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn mulh(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn mulhu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn mulhsu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     fn div(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 402 |     fn divu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn rem(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     fn remu(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 437 |     fn lr_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn sc_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     fn amoswap_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn amoadd_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     fn amoxor_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn amoand_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn amoor_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     fn amomin_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 490 |     fn amomax_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     fn amominu_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     fn amomaxu_w(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 504 |     fn amo_operation(&self, core: &mut Core, op: impl Fn(u32, u32) -> u32) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     fn csr_manipulate(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn csr_manipulate_uimm(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     fn csr_manipulate_rs1(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     fn csrrw(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     fn csrrs(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 579 |     fn csrrc(&self, core: &mut Core) -> Result<(), Exception>{
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     fn csrrwi(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 605 |     fn csrrsi(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 618 |     fn csrrci(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 632 |     fn fence(&self, _core: &mut Core) -> Result<(), Exception> { Ok(()) }
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 633 |     fn fence_i(&self, _core: &mut Core) -> Result<(), Exception> { Ok(()) }
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 634 |
[INFO] [stdout] 635 |     fn ecall(&self, _core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     fn ebreak(&self, core: &mut Core) -> Result<(), Exception> { Err(Exception::Breakpoint(core.pc)) }
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 640 |
[INFO] [stdout] 641 |     fn mret(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub fn exec(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_panic_msg` is never used
[INFO] [stdout]    --> src/util/instruction.rs:660:4
[INFO] [stdout]     |
[INFO] [stdout] 660 | fn make_panic_msg(name: EncodeType, field: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arithmetic_right_shift` is never used
[INFO] [stdout]    --> src/util/instruction.rs:664:4
[INFO] [stdout]     |
[INFO] [stdout] 664 | fn arithmetic_right_shift(value: u32, shamt: u32) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RType`, `IType`, `SType`, `BType`, `UType`, and `JType` are never constructed
[INFO] [stdout]    --> src/util/instruction.rs:680:5
[INFO] [stdout]     |
[INFO] [stdout] 679 | enum EncodeType {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] 680 |     RType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 681 |     IType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 682 |     SType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 683 |     BType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 684 |     UType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 685 |     JType,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EncodeType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOAD` is never used
[INFO] [stdout]    --> src/util/instruction.rs:742:7
[INFO] [stdout]     |
[INFO] [stdout] 742 | const LOAD: u32      = 0b0000011;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STORE` is never used
[INFO] [stdout]    --> src/util/instruction.rs:743:7
[INFO] [stdout]     |
[INFO] [stdout] 743 | const STORE: u32     = 0b0100011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MADD` is never used
[INFO] [stdout]    --> src/util/instruction.rs:744:7
[INFO] [stdout]     |
[INFO] [stdout] 744 | const MADD: u32      = 0b1000011;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BRANCH` is never used
[INFO] [stdout]    --> src/util/instruction.rs:745:7
[INFO] [stdout]     |
[INFO] [stdout] 745 | const BRANCH: u32    = 0b1100011;
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOAD_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:747:7
[INFO] [stdout]     |
[INFO] [stdout] 747 | const LOAD_FP: u32   = 0b0000111;
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STORE_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:748:7
[INFO] [stdout]     |
[INFO] [stdout] 748 | const STORE_FP: u32  = 0b0100111;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MSUB` is never used
[INFO] [stdout]    --> src/util/instruction.rs:749:7
[INFO] [stdout]     |
[INFO] [stdout] 749 | const MSUB: u32      = 0b1000111;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JALR` is never used
[INFO] [stdout]    --> src/util/instruction.rs:750:7
[INFO] [stdout]     |
[INFO] [stdout] 750 | const JALR: u32      = 0b1100111;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_0` is never used
[INFO] [stdout]    --> src/util/instruction.rs:752:7
[INFO] [stdout]     |
[INFO] [stdout] 752 | const CUSTOM_0: u32  = 0b0001011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_1` is never used
[INFO] [stdout]    --> src/util/instruction.rs:753:7
[INFO] [stdout]     |
[INFO] [stdout] 753 | const CUSTOM_1: u32  = 0b0101011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMSUM` is never used
[INFO] [stdout]    --> src/util/instruction.rs:754:7
[INFO] [stdout]     |
[INFO] [stdout] 754 | const NMSUM: u32     = 0b1001011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MISC_MEM` is never used
[INFO] [stdout]    --> src/util/instruction.rs:757:7
[INFO] [stdout]     |
[INFO] [stdout] 757 | const MISC_MEM: u32  = 0b0001111;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMO` is never used
[INFO] [stdout]    --> src/util/instruction.rs:758:7
[INFO] [stdout]     |
[INFO] [stdout] 758 | const AMO: u32       = 0b0101111;
[INFO] [stdout]     |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMADD` is never used
[INFO] [stdout]    --> src/util/instruction.rs:759:7
[INFO] [stdout]     |
[INFO] [stdout] 759 | const NMADD: u32     = 0b1001111;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JAL` is never used
[INFO] [stdout]    --> src/util/instruction.rs:760:7
[INFO] [stdout]     |
[INFO] [stdout] 760 | const JAL: u32       = 0b1101111;
[INFO] [stdout]     |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_IMM` is never used
[INFO] [stdout]    --> src/util/instruction.rs:762:7
[INFO] [stdout]     |
[INFO] [stdout] 762 | const OP_IMM: u32    = 0b0010011;
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:763:7
[INFO] [stdout]     |
[INFO] [stdout] 763 | const OP: u32        = 0b0110011;
[INFO] [stdout]     |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:764:7
[INFO] [stdout]     |
[INFO] [stdout] 764 | const OP_FP: u32     = 0b1010011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM` is never used
[INFO] [stdout]    --> src/util/instruction.rs:765:7
[INFO] [stdout]     |
[INFO] [stdout] 765 | const SYSTEM: u32    = 0b1110011;
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUIPC` is never used
[INFO] [stdout]    --> src/util/instruction.rs:767:7
[INFO] [stdout]     |
[INFO] [stdout] 767 | const AUIPC: u32     = 0b0010111;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LUI` is never used
[INFO] [stdout]    --> src/util/instruction.rs:768:7
[INFO] [stdout]     |
[INFO] [stdout] 768 | const LUI: u32       = 0b0110111;
[INFO] [stdout]     |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_IMM_32` is never used
[INFO] [stdout]    --> src/util/instruction.rs:772:7
[INFO] [stdout]     |
[INFO] [stdout] 772 | const OP_IMM_32: u32 = 0b0011011;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_32` is never used
[INFO] [stdout]    --> src/util/instruction.rs:773:7
[INFO] [stdout]     |
[INFO] [stdout] 773 | const OP_32: u32     = 0b0111011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_2` is never used
[INFO] [stdout]    --> src/util/instruction.rs:774:7
[INFO] [stdout]     |
[INFO] [stdout] 774 | const CUSTOM_2: u32  = 0b1011011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_3` is never used
[INFO] [stdout]    --> src/util/instruction.rs:775:7
[INFO] [stdout]     |
[INFO] [stdout] 775 | const CUSTOM_3: u32  = 0b1111011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_impl` and `exec_impl` are never used
[INFO] [stdout]    --> src/util/instruction.rs:697:16
[INFO] [stdout]     |
[INFO] [stdout] 696 |           impl Instruction {
[INFO] [stdout]     |           ---------------- associated items in this implementation
[INFO] [stdout] 697 |               fn new_impl(inst: u32) -> Result<Instruction, Exception> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |               fn exec_impl(&self, core: &mut Core) -> Result<(), Exception> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 779 | / opcode_list!(
[INFO] [stdout] 780 | |     // RV32I standard isa
[INFO] [stdout] 781 | |     {     lui, UType, op: LUI, },
[INFO] [stdout] 782 | |     {   auipc, UType, op: AUIPC, },
[INFO] [stdout] ...   |
[INFO] [stdout] 857 | |     { amomaxu_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b11100 }
[INFO] [stdout] 858 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opcode_list` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/util/instruction.rs:781:11
[INFO] [stdout]     |
[INFO] [stdout] 728 |         enum Opcode {
[INFO] [stdout]     |              ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 781 |     {     lui, UType, op: LUI, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 782 |     {   auipc, UType, op: AUIPC, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 783 |     {     jal, JType, op: JAL, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 784 |     {    jalr, IType, op: JALR,     f3: 0b000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 785 |     {     beq, BType, op: BRANCH,   f3: 0b000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 786 |     {     bne, BType, op: BRANCH,   f3: 0b001, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 787 |     {     blt, BType, op: BRANCH,   f3: 0b100, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 788 |     {     bge, BType, op: BRANCH,   f3: 0b101, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 789 |     {    bltu, BType, op: BRANCH,   f3: 0b110, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 790 |     {    bgeu, BType, op: BRANCH,   f3: 0b111, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 791 |     {      lb, IType, op: LOAD,     f3: 0b000, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 792 |     {      lh, IType, op: LOAD,     f3: 0b001, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 793 |     {      lw, IType, op: LOAD,     f3: 0b010, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 794 |     {     lbu, IType, op: LOAD,     f3: 0b100, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 795 |     {     lhu, IType, op: LOAD,     f3: 0b101, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 796 |     {      sb, SType, op: STORE,    f3: 0b000, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 797 |     {      sh, SType, op: STORE,    f3: 0b001, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 798 |     {      sw, SType, op: STORE,    f3: 0b010, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 799 |     {    addi, IType, op: OP_IMM,   f3: 0b000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 800 |     {    slti, IType, op: OP_IMM,   f3: 0b010, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 801 |     {   sltiu, IType, op: OP_IMM,   f3: 0b011, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 802 |     {    xori, IType, op: OP_IMM,   f3: 0b100, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 803 |     {     ori, IType, op: OP_IMM,   f3: 0b110, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 804 |     {    andi, IType, op: OP_IMM,   f3: 0b111, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 805 |     {    slli, IType, op: OP_IMM,   f3: 0b001, f7: 0b000_0000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 806 |     {    srli, IType, op: OP_IMM,   f3: 0b101, f7: 0b000_0000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 807 |     {    srai, IType, op: OP_IMM,   f3: 0b101, f7: 0b010_0000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 808 |     {     add, RType, op: OP,       f3: 0b000, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 809 |     {     sub, RType, op: OP,       f3: 0b000, f7: 0b010_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 810 |     {     sll, RType, op: OP,       f3: 0b001, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 811 |     {     slt, RType, op: OP,       f3: 0b010, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 812 |     {    sltu, RType, op: OP,       f3: 0b011, f7: 0b000_0000, },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 813 |     {     xor, RType, op: OP,       f3: 0b100, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 814 |     {     srl, RType, op: OP,       f3: 0b101, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 815 |     {     sra, RType, op: OP,       f3: 0b101, f7: 0b010_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 816 |     {      or, RType, op: OP,       f3: 0b110, f7: 0b000_0000, },
[INFO] [stdout]     |            ^^
[INFO] [stdout] 817 |     {     and, RType, op: OP,       f3: 0b111, f7: 0b000_0000, },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 818 |     {   fence, IType, op: MISC_MEM, f3: 0b000, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 819 |     {   ecall, IType, op: SYSTEM,   f12: 0b0000_0000_0000, [19, 7]: 0, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 820 |     {  ebreak, IType, op: SYSTEM,   f12: 0b0000_0000_0001, [19, 7]: 0, },
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 823 |     {    mret, IType, op: SYSTEM,   f3: 0b000, f7: 0b0011000, [11, 7]: 0b00000, [19, 15]: 0b00000, [24, 20]: 0b00010 },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 826 |     {   csrrw, IType, op: SYSTEM,   f3: 0b001, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 827 |     {   csrrs, IType, op: SYSTEM,   f3: 0b010, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 828 |     {   csrrc, IType, op: SYSTEM,   f3: 0b011, },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 829 |     {  csrrwi, IType, op: SYSTEM,   f3: 0b101, },
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 830 |     {  csrrsi, IType, op: SYSTEM,   f3: 0b110, },
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 831 |     {  csrrci, IType, op: SYSTEM,   f3: 0b111, },
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 834 |     { fence_i, IType, op: MISC_MEM, f3: 0b001, },
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 837 |     {     mul, RType, op: OP,       f3: 0b000, f7: 0b000_0001 },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 838 |     {    mulh, RType, op: OP,       f3: 0b001, f7: 0b000_0001 },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 839 |     {  mulhsu, RType, op: OP,       f3: 0b010, f7: 0b000_0001 },
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 840 |     {   mulhu, RType, op: OP,       f3: 0b011, f7: 0b000_0001 },
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 841 |     {     div, RType, op: OP,       f3: 0b100, f7: 0b000_0001 },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 842 |     {    divu, RType, op: OP,       f3: 0b101, f7: 0b000_0001 },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 843 |     {     rem, RType, op: OP,       f3: 0b110, f7: 0b000_0001 },
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 844 |     {    remu, RType, op: OP,       f3: 0b111, f7: 0b000_0001 },
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 847 |     {      lr_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b00010, [24, 20]: 0b00000 },
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 848 |     {      sc_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b00011 },
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 849 |     { amoswap_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b00001 },
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 850 |     {  amoadd_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b00000 },
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 851 |     {  amoxor_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b00100 },
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 852 |     {  amoand_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b01100 },
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 853 |     {   amoor_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b01000 },
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 854 |     {  amomin_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b10000 },
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 855 |     {  amomax_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b10100 },
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 856 |     { amominu_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b11000 },
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 857 |     { amomaxu_w, RType, op: AMO,      f3: 0b010, [31, 27]: 0b11100 }
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Opcode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `opcode_list` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `truncate`, `extract`, `concat`, and `sign_ext` are never used
[INFO] [stdout]  --> src/util/bitwise.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Bitwise: Copy {
[INFO] [stdout]   |           ------- associated items in this trait
[INFO] [stdout] 2 |     fn truncate(self, upper: Self, lower: Self) -> Self;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 3 |     fn extract(self, index: Self) -> Self;
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 4 |     fn concat(values: &[Self], lengths: &[Self]) -> Self;
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 5 |     fn sign_ext(self, msb_pos: Self) -> Self;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_exception_code`, `is_interrupt`, `get_cause`, and `get_tval` are never used
[INFO] [stdout]   --> src/util/exception.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Exception {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 39 |     pub fn get_exception_code(self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn is_interrupt(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn get_cause(self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn get_tval(self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     core.mmu.write_u8(exec_addr + index, bin);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     let _ = core.mmu.write_u8(exec_addr + index, bin);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 |             tpe => panic!(make_panic_msg(tpe, "rs1"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 27 |             tpe => panic!("{}", make_panic_msg(tpe, "rs1"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |             tpe => panic!(make_panic_msg(tpe, "rs2"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 36 |             tpe => panic!("{}", make_panic_msg(tpe, "rs2"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 |             tpe => panic!(make_panic_msg(tpe, "rd"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |             tpe => panic!("{}", make_panic_msg(tpe, "rd"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:53:24
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 panic!(make_panic_msg(EncodeType::RType, "imm")),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 panic!("{}", make_panic_msg(EncodeType::RType, "imm")),
[INFO] [stdout]    |                        +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 82 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut emu = Emulator::new_with_elf_file("test_bin/rv32ui-p-add".to_string()).unwrap();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `elf_bin` and `labels` are never read
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Emulator {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 15 |     core: core::Core,
[INFO] [stdout] 16 |     elf_bin: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 17 |     breakpoints: Vec<u32>,
[INFO] [stdout] 18 |     labels: HashMap<String, u32>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `step`, `set_breakpoint_with_string`, and `set_breakpoint_with_addr` are never used
[INFO] [stdout]    --> src/lib.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl Emulator {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn step(&mut self, num: u32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn set_breakpoint_with_string(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn set_breakpoint_with_addr(&mut self, addr: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MADD` is never used
[INFO] [stdout]    --> src/util/instruction.rs:744:7
[INFO] [stdout]     |
[INFO] [stdout] 744 | const MADD: u32      = 0b1000011;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOAD_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:747:7
[INFO] [stdout]     |
[INFO] [stdout] 747 | const LOAD_FP: u32   = 0b0000111;
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STORE_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:748:7
[INFO] [stdout]     |
[INFO] [stdout] 748 | const STORE_FP: u32  = 0b0100111;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MSUB` is never used
[INFO] [stdout]    --> src/util/instruction.rs:749:7
[INFO] [stdout]     |
[INFO] [stdout] 749 | const MSUB: u32      = 0b1000111;
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_0` is never used
[INFO] [stdout]    --> src/util/instruction.rs:752:7
[INFO] [stdout]     |
[INFO] [stdout] 752 | const CUSTOM_0: u32  = 0b0001011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_1` is never used
[INFO] [stdout]    --> src/util/instruction.rs:753:7
[INFO] [stdout]     |
[INFO] [stdout] 753 | const CUSTOM_1: u32  = 0b0101011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMSUM` is never used
[INFO] [stdout]    --> src/util/instruction.rs:754:7
[INFO] [stdout]     |
[INFO] [stdout] 754 | const NMSUM: u32     = 0b1001011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NMADD` is never used
[INFO] [stdout]    --> src/util/instruction.rs:759:7
[INFO] [stdout]     |
[INFO] [stdout] 759 | const NMADD: u32     = 0b1001111;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_FP` is never used
[INFO] [stdout]    --> src/util/instruction.rs:764:7
[INFO] [stdout]     |
[INFO] [stdout] 764 | const OP_FP: u32     = 0b1010011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_IMM_32` is never used
[INFO] [stdout]    --> src/util/instruction.rs:772:7
[INFO] [stdout]     |
[INFO] [stdout] 772 | const OP_IMM_32: u32 = 0b0011011;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP_32` is never used
[INFO] [stdout]    --> src/util/instruction.rs:773:7
[INFO] [stdout]     |
[INFO] [stdout] 773 | const OP_32: u32     = 0b0111011;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_2` is never used
[INFO] [stdout]    --> src/util/instruction.rs:774:7
[INFO] [stdout]     |
[INFO] [stdout] 774 | const CUSTOM_2: u32  = 0b1011011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM_3` is never used
[INFO] [stdout]    --> src/util/instruction.rs:775:7
[INFO] [stdout]     |
[INFO] [stdout] 775 | const CUSTOM_3: u32  = 0b1111011;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/lib.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     core.mmu.write_u8(exec_addr + index, bin);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     let _ = core.mmu.write_u8(exec_addr + index, bin);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 |             tpe => panic!(make_panic_msg(tpe, "rs1"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 27 |             tpe => panic!("{}", make_panic_msg(tpe, "rs1"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |             tpe => panic!(make_panic_msg(tpe, "rs2"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 36 |             tpe => panic!("{}", make_panic_msg(tpe, "rs2"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 |             tpe => panic!(make_panic_msg(tpe, "rd"))
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 46 |             tpe => panic!("{}", make_panic_msg(tpe, "rd"))
[INFO] [stdout]    |                           +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/util/instruction.rs:53:24
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 panic!(make_panic_msg(EncodeType::RType, "imm")),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 53 |                 panic!("{}", make_panic_msg(EncodeType::RType, "imm")),
[INFO] [stdout]    |                        +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 21 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.21s
[INFO] running `Command { std: "docker" "inspect" "5410e17c5f3fef1ce39a51e431aed717e7b8ba2b038d391b633a50ecd2e3cf16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5410e17c5f3fef1ce39a51e431aed717e7b8ba2b038d391b633a50ecd2e3cf16", kill_on_drop: false }`
[INFO] [stdout] 5410e17c5f3fef1ce39a51e431aed717e7b8ba2b038d391b633a50ecd2e3cf16
