aboutsummaryrefslogtreecommitdiffhomepage
path: root/ptx_parser/src/ast.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ptx_parser/src/ast.rs')
-rw-r--r--ptx_parser/src/ast.rs30
1 files changed, 27 insertions, 3 deletions
diff --git a/ptx_parser/src/ast.rs b/ptx_parser/src/ast.rs
index a90b21e..65c624e 100644
--- a/ptx_parser/src/ast.rs
+++ b/ptx_parser/src/ast.rs
@@ -1049,6 +1049,15 @@ impl<'input, ID> MethodName<'input, ID> {
}
}
+impl<'input> MethodName<'input, &'input str> {
+ pub fn text(&self) -> &'input str {
+ match self {
+ MethodName::Kernel(name) => *name,
+ MethodName::Func(name) => *name,
+ }
+ }
+}
+
bitflags! {
pub struct LinkingDirective: u8 {
const NONE = 0b000;
@@ -1291,7 +1300,12 @@ impl<T: Operand> CallArgs<T> {
.iter()
.zip(details.return_arguments.iter())
{
- visitor.visit_ident(param, Some((type_, *space)), true, false)?;
+ visitor.visit_ident(
+ param,
+ Some((type_, *space)),
+ *space == StateSpace::Reg,
+ false,
+ )?;
}
visitor.visit_ident(&self.func, None, false, false)?;
for (param, (type_, space)) in self
@@ -1315,7 +1329,12 @@ impl<T: Operand> CallArgs<T> {
.iter_mut()
.zip(details.return_arguments.iter())
{
- visitor.visit_ident(param, Some((type_, *space)), true, false)?;
+ visitor.visit_ident(
+ param,
+ Some((type_, *space)),
+ *space == StateSpace::Reg,
+ false,
+ )?;
}
visitor.visit_ident(&mut self.func, None, false, false)?;
for (param, (type_, space)) in self
@@ -1339,7 +1358,12 @@ impl<T: Operand> CallArgs<T> {
.into_iter()
.zip(details.return_arguments.iter())
.map(|(param, (type_, space))| {
- visitor.visit_ident(param, Some((type_, *space)), true, false)
+ visitor.visit_ident(
+ param,
+ Some((type_, *space)),
+ *space == StateSpace::Reg,
+ false,
+ )
})
.collect::<Result<Vec<_>, _>>()?;
let func = visitor.visit_ident(self.func, None, false, false)?;