ptx_parser/parser/instruction/
mbarrier_pending_count.rs

1//! Original PTX specification:
2//!
3//! mbarrier.pending_count.b64 count, state;
4
5#![allow(unused)]
6
7use crate::lexer::PtxToken;
8use crate::parser::{PtxParseError, PtxParser, PtxTokenStream, Span};
9use crate::r#type::common::*;
10
11pub mod section_0 {
12    use super::*;
13    use crate::r#type::instruction::mbarrier_pending_count::section_0::*;
14
15    impl PtxParser for MbarrierPendingCountB64 {
16        fn parse(stream: &mut PtxTokenStream) -> Result<Self, PtxParseError> {
17            stream.expect_string("mbarrier")?;
18            stream.expect_string(".pending_count")?;
19            let pending_count = ();
20            stream.expect_complete()?;
21            stream.expect_string(".b64")?;
22            let b64 = ();
23            stream.expect_complete()?;
24            let count = GeneralOperand::parse(stream)?;
25            stream.expect_complete()?;
26            stream.expect(&PtxToken::Comma)?;
27            let state = GeneralOperand::parse(stream)?;
28            stream.expect_complete()?;
29            stream.expect_complete()?;
30            stream.expect(&PtxToken::Semicolon)?;
31            Ok(MbarrierPendingCountB64 {
32                pending_count,
33                b64,
34                count,
35                state,
36            })
37        }
38    }
39}