# cargo run --example=parse data/example.decode # Fields: %rd 4:4 %rs 8:4 %rt 12:4 %imm 8:s8 # Args: &r1 rd rs &r2 rd rs rt &i rd imm # Formats: @r1 .... .... .... .... &r1 %rd %rs @r2 .... .... .... .... &r2 %rd %rs %rt @i .... .... .... .... &i %rd %imm # 8-bit patterns: { illegal 0000 0000 inc .... 0000 %rd } { nop 0000 0001 ? alias dec .... 0001 %rd } # 16-bit patterns: and 0000 .... .... 0010 @r1 or 0001 .... .... 0010 @r1 { not 0010 0000 .... 0010 %rd ? alias xor 0010 .... .... 0010 @r1 } sll 1000 .... .... 0010 @r1 srl 1010 .... .... 0010 @r1 sra 1011 .... .... 0010 @r1 { nop ---- ---- 0000 0100 ? alias mv 0000 .... .... 0100 @r1 ? alias mv .... 0000 .... 0100 @r1 rs=%rt ? alias add .... .... .... 0100 @r2 } { neg .... 0000 .... 0101 @r1 rs=%rt ? alias sub .... .... .... 0101 @r2 } { fadd .... .... .... 1000 @r2 ? f mul .... .... .... 1000 @r2 ? m } { fmul .... .... .... 1001 @r2 ? f mulh .... .... .... 1001 @r2 ? m } div .... .... .... 1010 @r2 ? d rem .... .... .... 1011 @r2 ? d li .... .... .... 1100 @i lui imm:s8 .... 1110 @i # 24-bit patterns: lui16 imm:s16 .... 1111 @i # 24 bit insn