Skip to main content

MIPS

Constant MIPS 

Source
pub const MIPS: &str = "set = \"MIPS\"\nwidth = 32\n\n[formats]\nnames = [\"r\", \"i\", \"j\", \"branch\", \"mem\"]\nparts = [\n    [\n        \"opcode\",\n        6,\n        \"u8\",\n    ],\n    [\n        \"rs\",\n        5,\n        \"Register_int\",\n    ],\n    [\n        \"rt\",\n        5,\n        \"Register_int\",\n    ],\n    [\n        \"rd\",\n        5,\n        \"Register_int\",\n    ],\n    [\n        \"shamt\",\n        5,\n        \"u8\",\n    ],\n    [\n        \"funct\",\n        6,\n        \"u8\",\n    ],\n    [\n        \"imm\",\n        32,\n        \"VInt\",\n    ],\n    [\n        \"addr\",\n        32,\n        \"VInt\",\n    ],\n]\n\n[types]\nnames = [\"R\", \"I\", \"J\"]\nR = [\n    { name = \"opcode\", top = 5, bot = 0 },\n    { name = \"rs\", top = 4, bot = 0 },\n    { name = \"rt\", top = 4, bot = 0 },\n    { name = \"rd\", top = 4, bot = 0 },\n    { name = \"shamt\", top = 4, bot = 0 },\n    { name = \"funct\", top = 5, bot = 0 },\n]\nI = [\n    { name = \"opcode\", top = 5, bot = 0 },\n    { name = \"rs\", top = 4, bot = 0 },\n    { name = \"rt\", top = 4, bot = 0 },\n    { name = \"imm\", top = 15, bot = 0 },\n]\nJ = [\n    { name = \"opcode\", top = 5, bot = 0 },\n    { name = \"addr\", top = 25, bot = 0 },\n]\n\n[r]\ntype = \"R\"\n[r.repr]\ndefault = \"$name$ %rd%, %rs%, %rt%\"\njr = \"$name$ %rs%\"\njalr = \"$name$ %rd%, %rs%\"\nmfhi = \"$name$ %rd%\"\nmthi = \"$name$ %rd%\"\nmflo = \"$name$ %rd%\"\nmtlo = \"$name$ %rd%\"\nmfc0 = \"$name$ %rd%\"\n[r.instructions]\nsll = { mask = 0xfc00003f, match = 0x00 }\nsrl = { mask = 0xfc00003f, match = 0x02 }\nsra = { mask = 0xfc00003f, match = 0x03 }\njr = { mask = 0xfc00003f, match = 0x08 }\njalr = { mask = 0xfc00003f, match = 0x09 }\nmult = { mask = 0xfc00003f, match = 0x18 }\nmultu = { mask = 0xfc00003f, match = 0x19 }\nadd = { mask = 0xfc00003f, match = 0x20 }\naddu = { mask = 0xfc00003f, match = 0x21 }\nsub = { mask = 0xfc00003f, match = 0x22 }\nsubu = { mask = 0xfc00003f, match = 0x23 }\nand = { mask = 0xfc00003f, match = 0x24 }\nor = { mask = 0xfc00003f, match = 0x25 }\nxor = { mask = 0xfc00003f, match = 0x26 }\nnor = { mask = 0xfc00003f, match = 0x27 }\ndiv = { mask = 0xfc00003f, match = 0x1a }\ndivu = { mask = 0xfc00003f, match = 0x1b }\nslt = { mask = 0xfc00003f, match = 0x2a }\nsltu = { mask = 0xfc00003f, match = 0x2b }\n\n[i]\ntype = \"I\"\n[i.repr]\ndefault = \"$name$ %rt%, %rs%, %imm%\"\n[i.instructions]\naddi = { mask = 0xfc000000, match = 0x20000000 }\naddiu = { mask = 0xfc000000, match = 0x24000000 }\nandi = { mask = 0xfc000000, match = 0x30000000 }\nori = { mask = 0xfc000000, match = 0x34000000 }\nslti = { mask = 0xfc000000, match = 0x28000000 }\nsltiu = { mask = 0xfc000000, match = 0x2c000000 }\n\n\n[branch]\ntype = \"I\"\n[branch.repr]\ndefault = \"$name$ %rs%, %rt%\"\n[branch.instructions]\nbeq = { mask = 0xfc00000000, match = 0x10000000 }\nbne = { mask = 0xfc00000000, match = 0x14000000 }\nblez = { mask = 0xfc00000000, match = 0x18000000 }\nbgtz = { mask = 0xfc00000000, match = 0x1c000000 }\n\n[mem]\ntype = \"I\"\n[mem.repr]\ndefault = \"$name$ %rt%, %imm%(%rs%)\"\n[mem.instructions]\nlb = { mask = 0xfc000000, match = 0x80000000 }\nlw = { mask = 0xfc000000, match = 0x8c000000 }\nlbu = { mask = 0xfc000000, match = 0x90000000 }\nlhu = { mask = 0xfc000000, match = 0x94000000 }\nsb = { mask = 0xfc000000, match = 0xa0000000 }\nsh = { mask = 0xfc000000, match = 0xa4000000 }\nsw = { mask = 0xfc000000, match = 0xac000000 }\n\n[j]\ntype = \"J\"\n[j.repr]\ndefault = \"$name$ %addr%\"\n[j.instructions]\nj = { mask = 0xfc000000, match = 0x08000000 }\njal = { mask = 0xfc000000, match = 0x0c000000 }\n\n[mappings]\nnames = [\"Register_int\"]\nnumber = 32\nRegister_int = [\n    \"$zero\",\n    \"$at\",\n    \"$v0\",\n    \"$v1\",\n    \"$a0\",\n    \"$a1\",\n    \"$a2\",\n    \"$a3\",\n    \"$t0\",\n    \"$t1\",\n    \"$t2\",\n    \"$t3\",\n    \"$t4\",\n    \"$t5\",\n    \"$t6\",\n    \"$t7\",\n    \"$s0\",\n    \"$s1\",\n    \"$s2\",\n    \"$s3\",\n    \"$s4\",\n    \"$s5\",\n    \"$s6\",\n    \"$s7\",\n    \"$t8\",\n    \"$t9\",\n    \"$k0\",\n    \"$k1\",\n    \"$gp\",\n    \"$sp\",\n    \"$fp\",\n    \"$ra\",\n]\n";