zkevm-assembly 0.153.12

The zkEVM common utilities
Documentation
use super::*;

pub(crate) fn parse_uma_heap_read_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld.1", 2)?;
    let canonical = format!("uma.heap_read {}, r0, {}, r0", &args[0], &args[1]);

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_aux_heap_read_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld.2", 2)?;
    let canonical = format!("uma.aux_heap_read {}, r0, {}, r0", &args[0], &args[1]);

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_heap_write_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "st.1", 2)?;
    let canonical = format!("uma.heap_write {}, {}, r0, r0", &args[0], &args[1]);

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_aux_heap_write_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "st.2", 2)?;
    let canonical = format!("uma.aux_heap_write {}, {}, r0, r0", &args[0], &args[1]);

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_fat_ptr_read_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld", 2)?;
    let canonical = format!("uma.fat_ptr_read {}, r0, {}, r0", &args[0], &args[1]);

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_heap_read_increment_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld.1.inc", 3)?;
    let canonical = format!(
        "uma.heap_read.inc {}, r0, {}, {}",
        &args[0], &args[1], &args[2]
    );

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_aux_heap_read_increment_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld.2.inc", 3)?;
    let canonical = format!(
        "uma.aux_heap_read.inc {}, r0, {}, {}",
        &args[0], &args[1], &args[2]
    );

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_heap_write_increment_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "st.1.inc", 3)?;
    let canonical = format!(
        "uma.heap_write.inc {}, {}, {}, r0",
        &args[0], &args[1], &args[2]
    );

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_aux_heap_write_increment_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "st.2.inc", 3)?;
    let canonical = format!(
        "uma.aux_heap_write.inc {}, {}, {}, r0",
        &args[0], &args[1], &args[2]
    );

    Ok((rest, canonical))
}

pub(crate) fn parse_uma_fat_ptr_read_increment_combinator(input: &str) -> IResult<&str, String> {
    let (rest, (_, args)) = parse_mnemonic(input, "ld.inc", 3)?;
    let canonical = format!(
        "uma.fat_ptr_read.inc {}, r0, {}, {}",
        &args[0], &args[1], &args[2]
    );

    Ok((rest, canonical))
}