Path: blob/main/cranelift/codegen/src/isa/pulley_shared/inst/regs.rs
1693 views
//! Pulley registers.12use crate::machinst::{Reg, Writable};3use regalloc2::{PReg, RegClass, VReg};45#[inline]6pub fn x_reg(enc: usize) -> Reg {7let p = PReg::new(enc, RegClass::Int);8let v = VReg::new(p.index(), p.class());9Reg::from(v)10}1112#[inline]13pub const fn px_reg(enc: usize) -> PReg {14PReg::new(enc, RegClass::Int)15}1617#[inline]18pub fn f_reg(enc: usize) -> Reg {19let p = PReg::new(enc, RegClass::Float);20let v = VReg::new(p.index(), p.class());21Reg::from(v)22}2324#[inline]25pub const fn pf_reg(enc: usize) -> PReg {26PReg::new(enc, RegClass::Float)27}2829#[inline]30pub fn v_reg(enc: usize) -> Reg {31let p = PReg::new(enc, RegClass::Vector);32let v = VReg::new(p.index(), p.class());33Reg::from(v)34}3536#[inline]37pub const fn pv_reg(enc: usize) -> PReg {38PReg::new(enc, RegClass::Vector)39}4041macro_rules! define_registers {42(43$(44$reg:expr => $readable:ident, $writable:ident;45)*46) => {47$(48#[inline]49#[allow(dead_code, reason = "generated code")]50pub fn $readable() -> Reg {51$reg52}5354#[inline]55#[allow(dead_code, reason = "generated code")]56pub fn $writable() -> Writable<Reg> {57Writable::from_reg($readable())58}59)*60};61}6263define_registers! {64x_reg(0) => x0, writable_x0;65x_reg(1) => x1, writable_x1;66x_reg(2) => x2, writable_x2;67x_reg(3) => x3, writable_x3;68x_reg(4) => x4, writable_x4;69x_reg(5) => x5, writable_x5;70x_reg(6) => x6, writable_x6;71x_reg(7) => x7, writable_x7;72x_reg(8) => x8, writable_x8;73x_reg(9) => x9, writable_x9;74x_reg(10) => x10, writable_x10;75x_reg(11) => x11, writable_x11;76x_reg(12) => x12, writable_x12;77x_reg(13) => x13, writable_x13;78x_reg(14) => x14, writable_x14;79x_reg(15) => x15, writable_x15;80x_reg(16) => x16, writable_x16;81x_reg(17) => x17, writable_x17;82x_reg(18) => x18, writable_x18;83x_reg(19) => x19, writable_x19;84x_reg(20) => x20, writable_x20;85x_reg(21) => x21, writable_x21;86x_reg(22) => x22, writable_x22;87x_reg(23) => x23, writable_x23;88x_reg(24) => x24, writable_x24;89x_reg(25) => x25, writable_x25;90x_reg(26) => x26, writable_x26;91x_reg(27) => x27, writable_x27;92x_reg(28) => x28, writable_x28;93x_reg(29) => x29, writable_x29;9495x_reg(30) => stack_reg, writable_stack_reg;96x_reg(31) => spilltmp_reg, writable_spilltmp_reg;9798f_reg(0) => f0, writable_f0;99f_reg(1) => f1, writable_f1;100f_reg(2) => f2, writable_f2;101f_reg(3) => f3, writable_f3;102f_reg(4) => f4, writable_f4;103f_reg(5) => f5, writable_f5;104f_reg(6) => f6, writable_f6;105f_reg(7) => f7, writable_f7;106f_reg(8) => f8, writable_f8;107f_reg(9) => f9, writable_f9;108f_reg(10) => f10, writable_f10;109f_reg(11) => f11, writable_f11;110f_reg(12) => f12, writable_f12;111f_reg(13) => f13, writable_f13;112f_reg(14) => f14, writable_f14;113f_reg(15) => f15, writable_f15;114f_reg(16) => f16, writable_f16;115f_reg(17) => f17, writable_f17;116f_reg(18) => f18, writable_f18;117f_reg(19) => f19, writable_f19;118f_reg(20) => f20, writable_f20;119f_reg(21) => f21, writable_f21;120f_reg(22) => f22, writable_f22;121f_reg(23) => f23, writable_f23;122f_reg(24) => f24, writable_f24;123f_reg(25) => f25, writable_f25;124f_reg(26) => f26, writable_f26;125f_reg(27) => f27, writable_f27;126f_reg(28) => f28, writable_f28;127f_reg(29) => f29, writable_f29;128f_reg(30) => f30, writable_f30;129f_reg(31) => f31, writable_f31;130131v_reg(0) => v0, writable_v0;132v_reg(1) => v1, writable_v1;133v_reg(2) => v2, writable_v2;134v_reg(3) => v3, writable_v3;135v_reg(4) => v4, writable_v4;136v_reg(5) => v5, writable_v5;137v_reg(6) => v6, writable_v6;138v_reg(7) => v7, writable_v7;139v_reg(8) => v8, writable_v8;140v_reg(9) => v9, writable_v9;141v_reg(10) => v10, writable_v10;142v_reg(11) => v11, writable_v11;143v_reg(12) => v12, writable_v12;144v_reg(13) => v13, writable_v13;145v_reg(14) => v14, writable_v14;146v_reg(15) => v15, writable_v15;147v_reg(16) => v16, writable_v16;148v_reg(17) => v17, writable_v17;149v_reg(18) => v18, writable_v18;150v_reg(19) => v19, writable_v19;151v_reg(20) => v20, writable_v20;152v_reg(21) => v21, writable_v21;153v_reg(22) => v22, writable_v22;154v_reg(23) => v23, writable_v23;155v_reg(24) => v24, writable_v24;156v_reg(25) => v25, writable_v25;157v_reg(26) => v26, writable_v26;158v_reg(27) => v27, writable_v27;159v_reg(28) => v28, writable_v28;160v_reg(29) => v29, writable_v29;161v_reg(30) => v30, writable_v30;162v_reg(31) => v31, writable_v31;163}164165166