yess is a small Y86-64 pipeline simulator written in C++. It loads assembled .yo programs,
simulates the pipeline cycle by cycle, and prints the pipeline registers, condition codes, register file, and
memory dump after each cycle.
include/: public headers for the simulator modulessrc/: implementation files, grouped by executable entrypoint, core state, and pipeline logicexamples/: checked-in Y86 example programs with readable.yssource, runnable.yoinputs, and expected output snapshotstests/fixtures/: non-example inputs used by the smoke testsscripts/: local helper scripts
makeThis produces the yess executable at the repository root.
./yess path/to/.yo/fileDebug output:
./yess examples/arithmetic/arithmetic.yo -DRun the local regression suite with:
make testThe smoke tests run yess against the checked-in .yo fixtures under examples/ and compare the output against the bundled snapshots.
They also include an invalid-input loader case under tests/fixtures/.
Each example directory contains:
*.ys: human-readable source for the program*.yo: assembled input that can be executed directly byyessexpected.txt: the expected simulator output used bymake test
The examples cover:
haltandnop- register moves and immediate moves
- ALU operations
- conditional moves
- memory reads and writes
- stack operations
- small multi-instruction programs, including the original powers/register-growth sample