nak: make as_imm_not_{i,f}20 helper methods public

These are useful for SM50 legalize, which is in a different module.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26114>
This commit is contained in:
Benjamin Lee 2023-11-15 13:23:27 -08:00 committed by Marge Bot
parent cb3263560f
commit 286b832f74
2 changed files with 29 additions and 29 deletions

View file

@ -16,35 +16,6 @@ impl Src {
_ => false,
}
}
fn as_imm_not_i20(&self) -> Option<u32> {
match self.src_ref {
SrcRef::Imm32(i) => {
assert!(self.src_mod.is_none());
let top = i & 0xfff80000;
if top == 0 || top == 0xfff80000 {
None
} else {
Some(i)
}
}
_ => None,
}
}
fn as_imm_not_f20(&self) -> Option<u32> {
match self.src_ref {
SrcRef::Imm32(i) => {
assert!(self.src_mod.is_none());
if (i & 0xfff) == 0 {
None
} else {
Some(i)
}
}
_ => None,
}
}
}
fn align_down(value: usize, align: usize) -> usize {

View file

@ -1123,6 +1123,35 @@ impl Src {
}
}
pub fn as_imm_not_i20(&self) -> Option<u32> {
match self.src_ref {
SrcRef::Imm32(i) => {
assert!(self.src_mod.is_none());
let top = i & 0xfff80000;
if top == 0 || top == 0xfff80000 {
None
} else {
Some(i)
}
}
_ => None,
}
}
pub fn as_imm_not_f20(&self) -> Option<u32> {
match self.src_ref {
SrcRef::Imm32(i) => {
assert!(self.src_mod.is_none());
if (i & 0xfff) == 0 {
None
} else {
Some(i)
}
}
_ => None,
}
}
pub fn iter_ssa(&self) -> slice::Iter<'_, SSAValue> {
self.src_ref.iter_ssa()
}