a ton of stuff idk more ir work
This commit is contained in:
@@ -2,14 +2,17 @@ mod asm;
|
||||
mod base;
|
||||
mod funct;
|
||||
mod opcode;
|
||||
mod parse;
|
||||
mod reg;
|
||||
mod single;
|
||||
|
||||
use super::{create_program, elf, SymMap};
|
||||
use crate::util::BitsI32;
|
||||
pub use asm::*;
|
||||
use base::*;
|
||||
use funct::{op::*, width};
|
||||
use opcode::*;
|
||||
pub use parse::*;
|
||||
pub use reg::*;
|
||||
|
||||
use single::*;
|
||||
@@ -22,23 +25,35 @@ pub fn gen() -> Vec<u8> {
|
||||
let print_stuff = table.reserve();
|
||||
let start = table.push_fn(vec![
|
||||
I::Call(*print_stuff),
|
||||
I::Li(a0, 0),
|
||||
I::Li(a7, 93),
|
||||
I::Li { dest: a0, imm: 0 },
|
||||
I::Li { dest: a7, imm: 93 },
|
||||
I::Ecall,
|
||||
I::Jal(zero, 0),
|
||||
I::Jal {
|
||||
dest: zero,
|
||||
offset: 0,
|
||||
},
|
||||
]);
|
||||
table.write_fn(
|
||||
print_stuff,
|
||||
vec![
|
||||
I::Li(a0, 1),
|
||||
I::La(a1, msg),
|
||||
I::Li(a2, len as i32),
|
||||
I::Li(a7, 64),
|
||||
I::Li { dest: a0, imm: 1 },
|
||||
I::La { dest: a1, sym: msg },
|
||||
I::Li {
|
||||
dest: a2,
|
||||
imm: len as i64,
|
||||
},
|
||||
I::Li { dest: a7, imm: 64 },
|
||||
I::Ecall,
|
||||
I::Li(a0, 1),
|
||||
I::La(a1, msg2),
|
||||
I::Li(a2, len2 as i32),
|
||||
I::Li(a7, 64),
|
||||
I::Li { dest: a0, imm: 1 },
|
||||
I::La {
|
||||
dest: a1,
|
||||
sym: msg2,
|
||||
},
|
||||
I::Li {
|
||||
dest: a2,
|
||||
imm: len2 as i64,
|
||||
},
|
||||
I::Li { dest: a7, imm: 64 },
|
||||
I::Ecall,
|
||||
I::Ret,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user