1;; Partially auto generated using https://github.com/nmeum/riscv-opcodes23(define (get-value sym alist)4 (let ((val (assoc sym alist)))5 (if val (cdr val) val)))67(define (get-opcode instr-symbol)8 (get-value instr-symbol OPCODES))910(define (get-funct3 instr-symbol)11 (get-value instr-symbol FUNCT3))1213(define (get-funct7 instr-symbol)14 (get-value instr-symbol FUNCT7))1516(define OPCODES '(17 (BEQ . #x63)18 (BNE . #x63)19 (BLT . #x63)20 (BGE . #x63)21 (BLTU . #x63)22 (BGEU . #x63)23 (JALR . #x67)24 (JAL . #x6f)25 (LUI . #x37)26 (AUIPC . #x17)27 (ADDI . #x13)28 (SLLI . #x13)29 (SLTI . #x13)30 (SLTIU . #x13)31 (XORI . #x13)32 (SRLI . #x13)33 (SRAI . #x13)34 (ORI . #x13)35 (ANDI . #x13)36 (ADD . #x33)37 (SUB . #x33)38 (SLL . #x33)39 (SLT . #x33)40 (SLTU . #x33)41 (XOR . #x33)42 (SRL . #x33)43 (SRA . #x33)44 (OR . #x33)45 (AND . #x33)46 (LB . #x3)47 (LH . #x3)48 (LW . #x3)49 (LBU . #x3)50 (LHU . #x3)51 (SB . #x23)52 (SH . #x23)53 (SW . #x23)54 (FENCE . #xf)55 (FENCE.I . #xf)56))5758(define FUNCT3 '(59 (BEQ . #x0)60 (BNE . #x1)61 (BLT . #x4)62 (BGE . #x5)63 (BLTU . #x6)64 (BGEU . #x7)65 (JALR . #x0)66 (JAL . #x0)67 (LUI . #x0)68 (AUIPC . #x0)69 (ADDI . #x0)70 (SLLI . #x1)71 (SLTI . #x2)72 (SLTIU . #x3)73 (XORI . #x4)74 (SRLI . #x5)75 (SRAI . #x5)76 (ORI . #x6)77 (ANDI . #x7)78 (ADD . #x0)79 (SUB . #x0)80 (SLL . #x1)81 (SLT . #x2)82 (SLTU . #x3)83 (XOR . #x4)84 (SRL . #x5)85 (SRA . #x5)86 (OR . #x6)87 (AND . #x7)88 (LB . #x0)89 (LH . #x1)90 (LW . #x2)91 (LBU . #x4)92 (LHU . #x5)93 (SB . #x0)94 (SH . #x1)95 (SW . #x2)96 (FENCE . #x0)97 (FENCE.I . #x1)98))99100(define FUNCT7 '(101 (BEQ . #x0)102 (BNE . #x0)103 (BLT . #x0)104 (BGE . #x0)105 (BLTU . #x0)106 (BGEU . #x0)107 (JALR . #x0)108 (JAL . #x0)109 (LUI . #x0)110 (AUIPC . #x0)111 (ADDI . #x0)112 (SLLI . #x0)113 (SLTI . #x0)114 (SLTIU . #x0)115 (XORI . #x0)116 (SRLI . #x0)117 (SRAI . #x20)118 (ORI . #x0)119 (ANDI . #x0)120 (ADD . #x0)121 (SUB . #x20)122 (SLL . #x0)123 (SLT . #x0)124 (SLTU . #x0)125 (XOR . #x0)126 (SRL . #x0)127 (SRA . #x20)128 (OR . #x0)129 (AND . #x0)130 (LB . #x0)131 (LH . #x0)132 (LW . #x0)133 (LBU . #x0)134 (LHU . #x0)135 (SB . #x0)136 (SH . #x0)137 (SW . #x0)138 (FENCE . #x0)139 (FENCE.I . #x0)140))