Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ edition = "2021"
[dependencies]
strum = "0.21.0"
strum_macros = "0.21.1"
regex = "1.10.4"
11 changes: 5 additions & 6 deletions src/instruction.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use std::convert::Into;
use std::default;
use std::fmt::{format, write, Display};
use std::fmt::Display;

/// This file defines all the supported ARM and RISC-V instructions we support.
/// We use `strum` to assist in serializing asm files to our [`Instruction`] enum.
Expand Down Expand Up @@ -133,7 +132,7 @@ pub enum RiscVInstruction {
Slli {
dest: RiscVRegister,
src: RiscVRegister,
imm: i32
imm: i32,
},
/// Loads a value from memory into register rd for RV64I.
///
Expand Down Expand Up @@ -373,7 +372,7 @@ pub enum ArmInstruction {
Lsl {
dest: ArmRegister,
src: ArmRegister,
imm: i32
imm: i32,
},
/// Str [r2 + offset] = r1
#[strum(serialize = "str")]
Expand Down Expand Up @@ -426,7 +425,7 @@ impl Default for ArmInstruction {
}
}

#[derive(Debug)]
#[derive(Debug, PartialEq, Eq, Clone)]
pub enum RiscVVal {
RiscVRegister(RiscVRegister),
Immediate(i32),
Expand All @@ -449,7 +448,7 @@ impl Default for RiscVVal {

/// RISC-V Registers
/// https://msyksphinz-self.github.io/riscv-isadoc/html/regs.html
#[derive(Debug, EnumString, Default)]
#[derive(Debug, EnumString, Default, PartialEq, Eq, Clone)]
pub enum RiscVRegister {
#[default]
#[strum(serialize = "x0")]
Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pub mod instruction;
pub mod parser;
pub mod translate;
pub mod utils;
2 changes: 0 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
use std::fs;
use std::str::FromStr;
pub mod instruction;
pub mod translate;
pub mod utils;
use instruction::RiscVInstruction;
use translate::binary_translate;

// Samir: I am using main for testing, but it not needed since you can run
Expand Down
Loading
Loading