Firstly, you state in README.md and SPEC.txt that:
E: CMP* reg, imm8/reg -> reg = reg + imm8/reg
However, the line in libemu.c that implements it is:
case I_CMP: r = a; break;
I get that the purpose of the instruction is to load the flags register as if the operation had taken place. But, then the spec says that the operation does happen.
Firstly, you state in README.md and SPEC.txt that:
E: CMP* reg, imm8/reg -> reg = reg + imm8/reg
However, the line in libemu.c that implements it is:case I_CMP: r = a; break;
I get that the purpose of the instruction is to load the flags register as if the operation had taken place. But, then the spec says that the operation does happen.