backend_module/src/ch4/var_def2.rs

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);
}
}