// Code generated by parse_opcodes -go; DO NOT EDIT. package riscv import "github.com/twitchyliquid64/golang-asm/obj" type inst struct { opcode uint32 funct3 uint32 rs2 uint32 csr int64 funct7 uint32 } func encode(a obj.As) *inst { switch a { case ABEQ: return &inst{0x63, 0x0, 0x0, 0, 0x0} case ABNE: return &inst{0x63, 0x1, 0x0, 0, 0x0} case ABLT: return &inst{0x63, 0x4, 0x0, 0, 0x0} case ABGE: return &inst{0x63, 0x5, 0x0, 0, 0x0} case ABLTU: return &inst{0x63, 0x6, 0x0, 0, 0x0} case ABGEU: return &inst{0x63, 0x7, 0x0, 0, 0x0} case AJALR: return &inst{0x67, 0x0, 0x0, 0, 0x0} case AJAL: return &inst{0x6f, 0x0, 0x0, 0, 0x0} case ALUI: return &inst{0x37, 0x0, 0x0, 0, 0x0} case AAUIPC: return &inst{0x17, 0x0, 0x0, 0, 0x0} case AADDI: return &inst{0x13, 0x0, 0x0, 0, 0x0} case ASLLI: return &inst{0x13, 0x1, 0x0, 0, 0x0} case ASLTI: return &inst{0x13, 0x2, 0x0, 0, 0x0} case ASLTIU: return &inst{0x13, 0x3, 0x0, 0, 0x0} case AXORI: return &inst{0x13, 0x4, 0x0, 0, 0x0} case ASRLI: return &inst{0x13, 0x5, 0x0, 0, 0x0} case ASRAI: return &inst{0x13, 0x5, 0x0, 1024, 0x20} case AORI: return &inst{0x13, 0x6, 0x0, 0, 0x0} case AANDI: return &inst{0x13, 0x7, 0x0, 0, 0x0} case AADD: return &inst{0x33, 0x0, 0x0, 0, 0x0} case ASUB: return &inst{0x33, 0x0, 0x0, 1024, 0x20} case ASLL: return &inst{0x33, 0x1, 0x0, 0, 0x0} case ASLT: return &inst{0x33, 0x2, 0x0, 0, 0x0} case ASLTU: return &inst{0x33, 0x3, 0x0, 0, 0x0} case AXOR: return &inst{0x33, 0x4, 0x0, 0, 0x0} case ASRL: return &inst{0x33, 0x5, 0x0, 0, 0x0} case ASRA: return &inst{0x33, 0x5, 0x0, 1024, 0x20} case AOR: return &inst{0x33, 0x6, 0x0, 0, 0x0} case AAND: return &inst{0x33, 0x7, 0x0, 0, 0x0} case AADDIW: return &inst{0x1b, 0x0, 0x0, 0, 0x0} case ASLLIW: return &inst{0x1b, 0x1, 0x0, 0, 0x0} case ASRLIW: return &inst{0x1b, 0x5, 0x0, 0, 0x0} case ASRAIW: return &inst{0x1b, 0x5, 0x0, 1024, 0x20} case AADDW: return &inst{0x3b, 0x0, 0x0, 0, 0x0} case ASUBW: return &inst{0x3b, 0x0, 0x0, 1024, 0x20} case ASLLW: return &inst{0x3b, 0x1, 0x0, 0, 0x0} case ASRLW: return &inst{0x3b, 0x5, 0x0, 0, 0x0} case ASRAW: return &inst{0x3b, 0x5, 0x0, 1024, 0x20} case ALB: return &inst{0x3, 0x0, 0x0, 0, 0x0} case ALH: return &inst{0x3, 0x1, 0x0, 0, 0x0} case ALW: return &inst{0x3, 0x2, 0x0, 0, 0x0} case ALD: return &inst{0x3, 0x3, 0x0, 0, 0x0} case ALBU: return &inst{0x3, 0x4, 0x0, 0, 0x0} case ALHU: return &inst{0x3, 0x5, 0x0, 0, 0x0} case ALWU: return &inst{0x3, 0x6, 0x0, 0, 0x0} case ASB: return &inst{0x23, 0x0, 0x0, 0, 0x0} case ASH: return &inst{0x23, 0x1, 0x0, 0, 0x0} case ASW: return &inst{0x23, 0x2, 0x0, 0, 0x0} case ASD: return &inst{0x23, 0x3, 0x0, 0, 0x0} case AFENCE: return &inst{0xf, 0x0, 0x0, 0, 0x0} case AFENCEI: return &inst{0xf, 0x1, 0x0, 0, 0x0} case AMUL: return &inst{0x33, 0x0, 0x0, 32, 0x1} case AMULH: return &inst{0x33, 0x1, 0x0, 32, 0x1} case AMULHSU: return &inst{0x33, 0x2, 0x0, 32, 0x1} case AMULHU: return &inst{0x33, 0x3, 0x0, 32, 0x1} case ADIV: return &inst{0x33, 0x4, 0x0, 32, 0x1} case ADIVU: return &inst{0x33, 0x5, 0x0, 32, 0x1} case AREM: return &inst{0x33, 0x6, 0x0, 32, 0x1} case AREMU: return &inst{0x33, 0x7, 0x0, 32, 0x1} case AMULW: return &inst{0x3b, 0x0, 0x0, 32, 0x1} case ADIVW: return &inst{0x3b, 0x4, 0x0, 32, 0x1} case ADIVUW: return &inst{0x3b, 0x5, 0x0, 32, 0x1} case AREMW: return &inst{0x3b, 0x6, 0x0, 32, 0x1} case AREMUW: return &inst{0x3b, 0x7, 0x0, 32, 0x1} case AAMOADDW: return &inst{0x2f, 0x2, 0x0, 0, 0x0} case AAMOXORW: return &inst{0x2f, 0x2, 0x0, 512, 0x10} case AAMOORW: return &inst{0x2f, 0x2, 0x0, 1024, 0x20} case AAMOANDW: return &inst{0x2f, 0x2, 0x0, 1536, 0x30} case AAMOMINW: return &inst{0x2f, 0x2, 0x0, -2048, 0x40} case AAMOMAXW: return &inst{0x2f, 0x2, 0x0, -1536, 0x50} case AAMOMINUW: return &inst{0x2f, 0x2, 0x0, -1024, 0x60} case AAMOMAXUW: return &inst{0x2f, 0x2, 0x0, -512, 0x70} case AAMOSWAPW: return &inst{0x2f, 0x2, 0x0, 128, 0x4} case ALRW: return &inst{0x2f, 0x2, 0x0, 256, 0x8} case ASCW: return &inst{0x2f, 0x2, 0x0, 384, 0xc} case AAMOADDD: return &inst{0x2f, 0x3, 0x0, 0, 0x0} case AAMOXORD: return &inst{0x2f, 0x3, 0x0, 512, 0x10} case AAMOORD: return &inst{0x2f, 0x3, 0x0, 1024, 0x20} case AAMOANDD: return &inst{0x2f, 0x3, 0x0, 1536, 0x30} case AAMOMIND: return &inst{0x2f, 0x3, 0x0, -2048, 0x40} case AAMOMAXD: return &inst{0x2f, 0x3, 0x0, -1536, 0x50} case AAMOMINUD: return &inst{0x2f, 0x3, 0x0, -1024, 0x60} case AAMOMAXUD: return &inst{0x2f, 0x3, 0x0, -512, 0x70} case AAMOSWAPD: return &inst{0x2f, 0x3, 0x0, 128, 0x4} case ALRD: return &inst{0x2f, 0x3, 0x0, 256, 0x8} case ASCD: return &inst{0x2f, 0x3, 0x0, 384, 0xc} case AECALL: return &inst{0x73, 0x0, 0x0, 0, 0x0} case AEBREAK: return &inst{0x73, 0x0, 0x1, 1, 0x0} case AURET: return &inst{0x73, 0x0, 0x2, 2, 0x0} case ASRET: return &inst{0x73, 0x0, 0x2, 258, 0x8} case AMRET: return &inst{0x73, 0x0, 0x2, 770, 0x18} case ADRET: return &inst{0x73, 0x0, 0x12, 1970, 0x3d} case ASFENCEVMA: return &inst{0x73, 0x0, 0x0, 288, 0x9} case AWFI: return &inst{0x73, 0x0, 0x5, 261, 0x8} case ACSRRW: return &inst{0x73, 0x1, 0x0, 0, 0x0} case ACSRRS: return &inst{0x73, 0x2, 0x0, 0, 0x0} case ACSRRC: return &inst{0x73, 0x3, 0x0, 0, 0x0} case ACSRRWI: return &inst{0x73, 0x5, 0x0, 0, 0x0} case ACSRRSI: return &inst{0x73, 0x6, 0x0, 0, 0x0} case ACSRRCI: return &inst{0x73, 0x7, 0x0, 0, 0x0} case AHFENCEVVMA: return &inst{0x73, 0x0, 0x0, 544, 0x11} case AHFENCEGVMA: return &inst{0x73, 0x0, 0x0, 1568, 0x31} case AFADDS: return &inst{0x53, 0x0, 0x0, 0, 0x0} case AFSUBS: return &inst{0x53, 0x0, 0x0, 128, 0x4} case AFMULS: return &inst{0x53, 0x0, 0x0, 256, 0x8} case AFDIVS: return &inst{0x53, 0x0, 0x0, 384, 0xc} case AFSGNJS: return &inst{0x53, 0x0, 0x0, 512, 0x10} case AFSGNJNS: return &inst{0x53, 0x1, 0x0, 512, 0x10} case AFSGNJXS: return &inst{0x53, 0x2, 0x0, 512, 0x10} case AFMINS: return &inst{0x53, 0x0, 0x0, 640, 0x14} case AFMAXS: return &inst{0x53, 0x1, 0x0, 640, 0x14} case AFSQRTS: return &inst{0x53, 0x0, 0x0, 1408, 0x2c} case AFADDD: return &inst{0x53, 0x0, 0x0, 32, 0x1} case AFSUBD: return &inst{0x53, 0x0, 0x0, 160, 0x5} case AFMULD: return &inst{0x53, 0x0, 0x0, 288, 0x9} case AFDIVD: return &inst{0x53, 0x0, 0x0, 416, 0xd} case AFSGNJD: return &inst{0x53, 0x0, 0x0, 544, 0x11} case AFSGNJND: return &inst{0x53, 0x1, 0x0, 544, 0x11} case AFSGNJXD: return &inst{0x53, 0x2, 0x0, 544, 0x11} case AFMIND: return &inst{0x53, 0x0, 0x0, 672, 0x15} case AFMAXD: return &inst{0x53, 0x1, 0x0, 672, 0x15} case AFCVTSD: return &inst{0x53, 0x0, 0x1, 1025, 0x20} case AFCVTDS: return &inst{0x53, 0x0, 0x0, 1056, 0x21} case AFSQRTD: return &inst{0x53, 0x0, 0x0, 1440, 0x2d} case AFADDQ: return &inst{0x53, 0x0, 0x0, 96, 0x3} case AFSUBQ: return &inst{0x53, 0x0, 0x0, 224, 0x7} case AFMULQ: return &inst{0x53, 0x0, 0x0, 352, 0xb} case AFDIVQ: return &inst{0x53, 0x0, 0x0, 480, 0xf} case AFSGNJQ: return &inst{0x53, 0x0, 0x0, 608, 0x13} case AFSGNJNQ: return &inst{0x53, 0x1, 0x0, 608, 0x13} case AFSGNJXQ: return &inst{0x53, 0x2, 0x0, 608, 0x13} case AFMINQ: return &inst{0x53, 0x0, 0x0, 736, 0x17} case AFMAXQ: return &inst{0x53, 0x1, 0x0, 736, 0x17} case AFCVTSQ: return &inst{0x53, 0x0, 0x3, 1027, 0x20} case AFCVTQS: return &inst{0x53, 0x0, 0x0, 1120, 0x23} case AFCVTDQ: return &inst{0x53, 0x0, 0x3, 1059, 0x21} case AFCVTQD: return &inst{0x53, 0x0, 0x1, 1121, 0x23} case AFSQRTQ: return &inst{0x53, 0x0, 0x0, 1504, 0x2f} case AFLES: return &inst{0x53, 0x0, 0x0, -1536, 0x50} case AFLTS: return &inst{0x53, 0x1, 0x0, -1536, 0x50} case AFEQS: return &inst{0x53, 0x2, 0x0, -1536, 0x50} case AFLED: return &inst{0x53, 0x0, 0x0, -1504, 0x51} case AFLTD: return &inst{0x53, 0x1, 0x0, -1504, 0x51} case AFEQD: return &inst{0x53, 0x2, 0x0, -1504, 0x51} case AFLEQ: return &inst{0x53, 0x0, 0x0, -1440, 0x53} case AFLTQ: return &inst{0x53, 0x1, 0x0, -1440, 0x53} case AFEQQ: return &inst{0x53, 0x2, 0x0, -1440, 0x53} case AFCVTWS: return &inst{0x53, 0x0, 0x0, -1024, 0x60} case AFCVTWUS: return &inst{0x53, 0x0, 0x1, -1023, 0x60} case AFCVTLS: return &inst{0x53, 0x0, 0x2, -1022, 0x60} case AFCVTLUS: return &inst{0x53, 0x0, 0x3, -1021, 0x60} case AFMVXW: return &inst{0x53, 0x0, 0x0, -512, 0x70} case AFCLASSS: return &inst{0x53, 0x1, 0x0, -512, 0x70} case AFCVTWD: return &inst{0x53, 0x0, 0x0, -992, 0x61} case AFCVTWUD: return &inst{0x53, 0x0, 0x1, -991, 0x61} case AFCVTLD: return &inst{0x53, 0x0, 0x2, -990, 0x61} case AFCVTLUD: return &inst{0x53, 0x0, 0x3, -989, 0x61} case AFMVXD: return &inst{0x53, 0x0, 0x0, -480, 0x71} case AFCLASSD: return &inst{0x53, 0x1, 0x0, -480, 0x71} case AFCVTWQ: return &inst{0x53, 0x0, 0x0, -928, 0x63} case AFCVTWUQ: return &inst{0x53, 0x0, 0x1, -927, 0x63} case AFCVTLQ: return &inst{0x53, 0x0, 0x2, -926, 0x63} case AFCVTLUQ: return &inst{0x53, 0x0, 0x3, -925, 0x63} case AFMVXQ: return &inst{0x53, 0x0, 0x0, -416, 0x73} case AFCLASSQ: return &inst{0x53, 0x1, 0x0, -416, 0x73} case AFCVTSW: return &inst{0x53, 0x0, 0x0, -768, 0x68} case AFCVTSWU: return &inst{0x53, 0x0, 0x1, -767, 0x68} case AFCVTSL: return &inst{0x53, 0x0, 0x2, -766, 0x68} case AFCVTSLU: return &inst{0x53, 0x0, 0x3, -765, 0x68} case AFMVWX: return &inst{0x53, 0x0, 0x0, -256, 0x78} case AFCVTDW: return &inst{0x53, 0x0, 0x0, -736, 0x69} case AFCVTDWU: return &inst{0x53, 0x0, 0x1, -735, 0x69} case AFCVTDL: return &inst{0x53, 0x0, 0x2, -734, 0x69} case AFCVTDLU: return &inst{0x53, 0x0, 0x3, -733, 0x69} case AFMVDX: return &inst{0x53, 0x0, 0x0, -224, 0x79} case AFCVTQW: return &inst{0x53, 0x0, 0x0, -672, 0x6b} case AFCVTQWU: return &inst{0x53, 0x0, 0x1, -671, 0x6b} case AFCVTQL: return &inst{0x53, 0x0, 0x2, -670, 0x6b} case AFCVTQLU: return &inst{0x53, 0x0, 0x3, -669, 0x6b} case AFMVQX: return &inst{0x53, 0x0, 0x0, -160, 0x7b} case AFLW: return &inst{0x7, 0x2, 0x0, 0, 0x0} case AFLD: return &inst{0x7, 0x3, 0x0, 0, 0x0} case AFLQ: return &inst{0x7, 0x4, 0x0, 0, 0x0} case AFSW: return &inst{0x27, 0x2, 0x0, 0, 0x0} case AFSD: return &inst{0x27, 0x3, 0x0, 0, 0x0} case AFSQ: return &inst{0x27, 0x4, 0x0, 0, 0x0} case AFMADDS: return &inst{0x43, 0x0, 0x0, 0, 0x0} case AFMSUBS: return &inst{0x47, 0x0, 0x0, 0, 0x0} case AFNMSUBS: return &inst{0x4b, 0x0, 0x0, 0, 0x0} case AFNMADDS: return &inst{0x4f, 0x0, 0x0, 0, 0x0} case AFMADDD: return &inst{0x43, 0x0, 0x0, 32, 0x1} case AFMSUBD: return &inst{0x47, 0x0, 0x0, 32, 0x1} case AFNMSUBD: return &inst{0x4b, 0x0, 0x0, 32, 0x1} case AFNMADDD: return &inst{0x4f, 0x0, 0x0, 32, 0x1} case AFMADDQ: return &inst{0x43, 0x0, 0x0, 96, 0x3} case AFMSUBQ: return &inst{0x47, 0x0, 0x0, 96, 0x3} case AFNMSUBQ: return &inst{0x4b, 0x0, 0x0, 96, 0x3} case AFNMADDQ: return &inst{0x4f, 0x0, 0x0, 96, 0x3} case ASLLIRV32: return &inst{0x13, 0x1, 0x0, 0, 0x0} case ASRLIRV32: return &inst{0x13, 0x5, 0x0, 0, 0x0} case ASRAIRV32: return &inst{0x13, 0x5, 0x0, 1024, 0x20} case AFRFLAGS: return &inst{0x73, 0x2, 0x1, 1, 0x0} case AFSFLAGS: return &inst{0x73, 0x1, 0x1, 1, 0x0} case AFSFLAGSI: return &inst{0x73, 0x5, 0x1, 1, 0x0} case AFRRM: return &inst{0x73, 0x2, 0x2, 2, 0x0} case AFSRM: return &inst{0x73, 0x1, 0x2, 2, 0x0} case AFSRMI: return &inst{0x73, 0x5, 0x2, 2, 0x0} case AFSCSR: return &inst{0x73, 0x1, 0x3, 3, 0x0} case AFRCSR: return &inst{0x73, 0x2, 0x3, 3, 0x0} case ARDCYCLE: return &inst{0x73, 0x2, 0x0, -1024, 0x60} case ARDTIME: return &inst{0x73, 0x2, 0x1, -1023, 0x60} case ARDINSTRET: return &inst{0x73, 0x2, 0x2, -1022, 0x60} case ARDCYCLEH: return &inst{0x73, 0x2, 0x0, -896, 0x64} case ARDTIMEH: return &inst{0x73, 0x2, 0x1, -895, 0x64} case ARDINSTRETH: return &inst{0x73, 0x2, 0x2, -894, 0x64} case ASCALL: return &inst{0x73, 0x0, 0x0, 0, 0x0} case ASBREAK: return &inst{0x73, 0x0, 0x1, 1, 0x0} case AFMVXS: return &inst{0x53, 0x0, 0x0, -512, 0x70} case AFMVSX: return &inst{0x53, 0x0, 0x0, -256, 0x78} case AFENCETSO: return &inst{0xf, 0x0, 0x13, -1997, 0x41} } return nil }