Skip to main content

ptx_parser/unparser/instruction/
st_bulk.rs

1//! Original PTX specification:
2//!
3//! st.bulk{.weak}{.shared::cta}  [a], size, initval; // initval must be zero
4
5#![allow(unused)]
6
7use crate::lexer::PtxToken;
8use crate::unparser::{PtxUnparser, common::*};
9
10pub mod section_0 {
11    use super::*;
12    use crate::r#type::instruction::st_bulk::section_0::*;
13
14    impl PtxUnparser for StBulkWeakSharedCta {
15        fn unparse_tokens(&self, tokens: &mut ::std::vec::Vec<PtxToken>) {
16            self.unparse_tokens_mode(tokens, false);
17        }
18        fn unparse_tokens_mode(&self, tokens: &mut ::std::vec::Vec<PtxToken>, spaced: bool) {
19            push_opcode(tokens, "st");
20            push_directive(tokens, "bulk");
21            if self.weak {
22                push_directive(tokens, "weak");
23            }
24            if self.shared_cta {
25                push_directive(tokens, "shared::cta");
26            }
27            if spaced {
28                tokens.push(PtxToken::Space);
29            }
30            self.a.unparse_tokens_mode(tokens, spaced);
31            tokens.push(PtxToken::Comma);
32            if spaced {
33                tokens.push(PtxToken::Space);
34            }
35            self.size.unparse_tokens_mode(tokens, spaced);
36            tokens.push(PtxToken::Comma);
37            if spaced {
38                tokens.push(PtxToken::Space);
39            }
40            self.initval.unparse_tokens_mode(tokens, spaced);
41            tokens.push(PtxToken::Semicolon);
42            if spaced {
43                tokens.push(PtxToken::Newline);
44            }
45        }
46    }
47}