#[cfg(zisk_guest)]
use core::arch::asm;
#[cfg(zisk_guest)]
use crate::ziskos_syscall_ret_u64;
#[derive(Debug)]
#[repr(C)]
pub struct SyscallAdd256Params<'a> {
pub a: &'a [u64; 4],
pub b: &'a [u64; 4],
pub cin: u64,
pub c: &'a mut [u64; 4],
}
#[allow(unused_variables)]
#[cfg_attr(not(feature = "hints"), no_mangle)]
#[cfg_attr(feature = "hints", export_name = "hints_syscall_add256")]
pub extern "C" fn syscall_add256(
params: &mut SyscallAdd256Params,
#[cfg(feature = "hints")] hints: &mut Vec<u64>,
) -> u64 {
#[cfg(not(zisk_guest))]
{
let cout = zisk_precomp_helpers::add256(params.a, params.b, params.cin, params.c);
#[cfg(feature = "hints")]
{
hints.extend_from_slice(params.c);
hints.push(cout);
}
cout
}
#[cfg(zisk_guest)]
ziskos_syscall_ret_u64!(zisk_definitions::SYSCALL_ADD256_ID, params)
}