vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use crate::spec::{EngineInvariant, EngineSpec};

#[cfg(test)]
#[inline]
pub(crate) fn build_program_bytecode(instructions: &[(u32, u32)]) -> Vec<u8> {
    let mut out = Vec::new();
    out.extend_from_slice(b"YBC0");
    out.extend_from_slice(&(instructions.len() as u32).to_le_bytes());
    for &(opcode, operand) in instructions {
        out.extend_from_slice(&opcode.to_le_bytes());
        out.extend_from_slice(&operand.to_le_bytes());
    }
    out
}