zkvmc-llvm 0.0.1

LLVM backend for zkZMc
Documentation
use zkvmc_backend::Backend;
struct LlvmBackend {}

impl Backend for LlvmBackend {
    type Value = ();

    fn get_reg(&mut self, index: u32) -> Self::Value {
        todo!()
    }

    fn set_reg(&mut self, index: u32, val: Self::Value) {
        todo!()
    }

    fn get_pc(&mut self) -> u32 {
        todo!()
    }

    fn set_next_pc(&mut self, pc: u32) {
        todo!()
    }

    fn fetch_u32(&mut self, addr: u32) -> u32 {
        todo!()
    }

    fn const_value(&mut self, val: u32) -> Self::Value {
        todo!()
    }

    fn load(
        &mut self,
        width: zkvmc_backend::Width,
        signed: zkvmc_backend::Signed,
        addr: Self::Value,
    ) -> Self::Value {
        todo!()
    }

    fn store(&mut self, width: zkvmc_backend::Width, addr: Self::Value, val: Self::Value) {
        todo!()
    }

    fn add(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn sub(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn and(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn or(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn xor(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn shift_left(&mut self, val: Self::Value, shift: Self::Value) -> Self::Value {
        todo!()
    }

    fn shift_right(
        &mut self,
        signed: zkvmc_backend::Signed,
        val: Self::Value,
        shift: Self::Value,
    ) -> Self::Value {
        todo!()
    }

    fn mul(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn mulh(
        &mut self,
        signed: zkvmc_backend::Signed,
        a: Self::Value,
        b: Self::Value,
    ) -> Self::Value {
        todo!()
    }

    fn mulhsu(&mut self, a: Self::Value, b: Self::Value) -> Self::Value {
        todo!()
    }

    fn div(
        &mut self,
        signed: zkvmc_backend::Signed,
        a: Self::Value,
        b: Self::Value,
    ) -> Self::Value {
        todo!()
    }

    fn rem(
        &mut self,
        signed: zkvmc_backend::Signed,
        a: Self::Value,
        b: Self::Value,
    ) -> Self::Value {
        todo!()
    }

    fn jump(&mut self, target: Self::Value) {
        todo!()
    }

    fn ecall(&mut self) {
        todo!()
    }

    fn ebreak(&mut self) {
        todo!()
    }

    fn undefined(&mut self, instr: u32) {
        todo!()
    }

    fn if_else_val(
        &mut self,
        cond: zkvmc_backend::Cond,
        a: Self::Value,
        b: Self::Value,
        if_true: impl FnOnce(&mut Self) -> Self::Value,
        if_false: impl FnOnce(&mut Self) -> Self::Value,
    ) -> Self::Value {
        todo!()
    }
}