use.std::crypto::stark::constants #! Load the public inputs in memory starting from the address referenced by `public_inputs_ptr`. #! In parallel, compute the hash of the public inputs being loaded. The hashing starts with #! capacity registers of the hash function set to `C` resulting from hashing the proof context. #! The ouptut D is the digest of the hashing. #! #! Input: [public_inputs_ptr, C] #! Output: [D] #! Cycles: 38 export.load # TODO: load the public inputs using public_inputs_ptr drop # Unhash the public inputs from the advice provider. # The following assumes that the public inputs contain only the input and output states # of the operand stack and both are of length exactly 16. # TODO: generalize to any number of public inputs supported by the VM. padw padw repeat.4 adv_loadw swapw adv_loadw hperm end adv_loadw swapw exec.constants::zero_zero_zero_one_word mem_loadw hperm dropw swapw dropw end