Update skeleton

This commit is contained in:
Jeehoon Kang
2020-06-21 21:51:54 +09:00
parent 98505a6179
commit f79106c03d
55 changed files with 93 additions and 48621 deletions

View File

@@ -421,8 +421,12 @@ pub enum IType {
Xori,
Ori,
Andi,
Slli,
Srli,
Slli(Option<DataSize>),
Srli(Option<DataSize>),
Srai(Option<DataSize>),
Slti {
is_signed: bool,
},
}
impl IType {
@@ -457,6 +461,30 @@ impl IType {
is_signed,
}
}
pub fn slli(dtype: ir::Dtype) -> Self {
let data_size =
DataSize::try_from(dtype).expect("`data_size` must be derived from `dtype`");
assert!(data_size.is_integer());
Self::Slli(data_size.word())
}
pub fn srli(dtype: ir::Dtype) -> Self {
let data_size =
DataSize::try_from(dtype).expect("`data_size` must be derived from `dtype`");
assert!(data_size.is_integer());
Self::Srli(data_size.word())
}
pub fn srai(dtype: ir::Dtype) -> Self {
let data_size =
DataSize::try_from(dtype).expect("`data_size` must be derived from `dtype`");
assert!(data_size.is_integer());
Self::Srai(data_size.word())
}
}
#[derive(Debug, Clone, PartialEq)]