25 lines
682 B
Rust
25 lines
682 B
Rust
use cdsl::regs::{RegBankBuilder, RegClassBuilder};
|
|
use isa;
|
|
|
|
pub fn define() -> isa::TargetIsa {
|
|
let mut isa = isa::TargetIsa::new("riscv");
|
|
|
|
let builder = RegBankBuilder::new("IntRegs", "x")
|
|
.units(32)
|
|
.track_pressure(true);
|
|
let int_regs = isa.add_reg_bank(builder);
|
|
|
|
let builder = RegBankBuilder::new("FloatRegs", "f")
|
|
.units(32)
|
|
.track_pressure(true);
|
|
let float_regs = isa.add_reg_bank(builder);
|
|
|
|
let builder = RegClassBuilder::new_toplevel(&mut isa, "GPR", int_regs);
|
|
isa.add_reg_class(builder);
|
|
|
|
let builder = RegClassBuilder::new_toplevel(&mut isa, "FPR", float_regs);
|
|
isa.add_reg_class(builder);
|
|
|
|
isa
|
|
}
|