35 lines
968 B
Rust
35 lines
968 B
Rust
mod tests {
|
|
use std::ops::Add;
|
|
|
|
use compiler::backend::*;
|
|
use var::{ PrimVar, Var };
|
|
|
|
#[test]
|
|
pub fn var_def2() {
|
|
// main:
|
|
let mut entry = Block::new("entry".into());
|
|
let laa0b = Inst::La(LaInst::new(REG_A0.into(), "b".into()));
|
|
let addiwa0a05 = Inst::Add(AddInst::new(REG_A0.into(), REG_A0.into(), (5).into()));
|
|
let ret = Inst::Ret;
|
|
entry.extend_insts(vec![laa0b, addiwa0a05, ret]);
|
|
let b = Var::Prim(
|
|
PrimVar::IntVar(var::IntVar {
|
|
name: "b".into(),
|
|
init: (5).into(),
|
|
is_const: true,
|
|
})
|
|
);
|
|
|
|
let Main = Func::new("main".into(), Vec::new(), entry);
|
|
let m_def02 = Module {
|
|
name: "var_def02".into(),
|
|
global: Vec::new(),
|
|
funcs: vec![Main],
|
|
entry: Some("main".into()),
|
|
};
|
|
|
|
let asm = m_def02.gen_asm();
|
|
print!("{}", asm);
|
|
}
|
|
}
|