From 55a9ca94d64249280438da9b90186e0a4973f90d Mon Sep 17 00:00:00 2001
From: David Li 
Date: Wed, 16 Dec 2015 16:15:29 -0500
Subject: Load and recognize a minimal set of instructions
---
 src/isa/mod.rs | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
(limited to 'src/isa/mod.rs')
diff --git a/src/isa/mod.rs b/src/isa/mod.rs
index 5e9a7dc..ac8ce45 100644
--- a/src/isa/mod.rs
+++ b/src/isa/mod.rs
@@ -1,6 +1,7 @@
 pub mod opcodes;
+pub mod funct3;
 
-enum Register {
+pub enum Register {
     X0 = 0,
     X1 = 1,
     X2 = 2,
@@ -15,6 +16,12 @@ enum Register {
     X11 = 11,
 }
 
+impl Register {
+    pub fn as_num(self) -> usize {
+        self as usize
+    }
+}
+
 pub struct Instruction {
     word: u32,
 }
@@ -29,4 +36,8 @@ impl Instruction {
     pub fn opcode(&self) -> u32 {
         self.word & 0x7F
     }
+
+    pub fn funct3(&self) -> u32 {
+        (self.word >> 12) & 0x3
+    }
 }
-- 
cgit v1.2.3