1个不稳定版本
0.3.0 | 2020年5月10日 |
---|
#27 在 #accurate
在 3 个crate中使用 (通过 olympia_engine)
86KB
2K SLoC
olympia_derive
olympia_derive目前提供了一个derive宏,OlympiaInstruction。
以下是使用两个参数指令的示例
#[derive(OlympiaInstruction)]
#[olympia(
opcode=0x00AA_A111,
label="LD",
excluded(0b1010_1100)
)]
struct LoadRegisterConstant8 {
#[olympia(dest, mask=0xA)]
dest: ByteRegisterLookup,
#[olympia(src)]
src: u8,
}
以下是使用一个参数指令的示例
#[derive(OlympiaInstruction)]
#[olympia(
opcode=0x110A_A000,
label="RET",
)]
struct ReturnIf {
#[olympia(single, mask=0xA)]
dest: ByteRegisterLookup,
}
以下是使用无参数指令的示例
#[derive(OlympiaInstruction)]
#[olympia(
opcode=0x1100_1001,
label="RET",
)]
struct ReturnIf;
依赖
~335–790KB
~18K SLoC