Task #5383
closed[minimips][model] Specification of the miniMIPS ISA
100%
Description
Documentation is available here:
http://lyle.smu.edu/~seidel/courses/cse5381/MiniMIPSISA.pdf
Updated by Alexander Kamkin about 10 years ago
Path to the model source code: src/main/arch/minimips/model/minimips.nml
.
Updated by Alexander Kamkin about 10 years ago
To build the project, use ANT (http://ant.apache.org/).
Updated by Alexander Kamkin about 10 years ago
Updated by Alexander Kamkin about 10 years ago
- Subject changed from [arch] Specification of the miniMIPS ISA to [minimips][model] Specification of the miniMIPS ISA
Updated by Andrei Tatarnikov about 10 years ago
Вот он появился в r2735. При трансляции происходит куча ошибок:
Translating: src/main/arch/minimips/model/minimips.nml Model name: minimips Included: src/main/arch/minimips/model/minimips.nml minimips.nml 48:22 ERROR (SYNTACTIC): "The 'REGISTER' symbol is not declared." minimips.nml 48:36 ERROR (SYNTACTIC): "The 'REGISTER' symbol is not declared." minimips.nml 48:50 ERROR (SYNTACTIC): "The 'REGISTER' symbol is not declared." minimips.nml 63:21 ERROR (SYNTACTIC): "The 'REGISTER' symbol is not declared." minimips.nml 63:35 ERROR (SYNTACTIC): "The 'REGISTER' symbol is not declared." /home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 64:77 mismatched character '\r' expecting '"' minimips.nml 65:2 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 65:2 mismatched input 'image' expecting STRING_CONST" minimips.nml 129:63 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 129:63 missing RIGHT_PARENTH at 'rd'" minimips.nml 129:65 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 129:65 mismatched input '.' expecting ASSIGN" minimips.nml 129:71 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 129:71 mismatched input ')' expecting ASSIGN" minimips.nml 139:19 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 139:19 no viable alternative at input ')'" minimips.nml 141:63 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 141:63 missing RIGHT_PARENTH at 'rd'" minimips.nml 141:65 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 141:65 mismatched input '.' expecting ASSIGN" minimips.nml 141:71 ERROR (PARSER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/arch/minimips/model/minimips.nml line 141:71 mismatched input ')' expecting ASSIGN" minimips.nml 38:4 ERROR (SEMANTIC): "The 'temp' symbol is not declared." minimips.nml 38:4 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'temp'." minimips.nml 38:4 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'temp'." minimips.nml 38:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'temp = rs<31>::rs + rt<31>::rt'." minimips.nml 38:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'temp = rs<31>::rs + rt<31>::rt'." minimips.nml 38:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '{ temp = rs<31>::rs + rt<31>::rt; // concat with greatest significant bits in each, then add if temp<32> != temp<31> then //true, if adding led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 34:2 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'action = { temp = rs<31>::rs + rt<31>::rt; // concat with greatest significant bits in each, then add if temp<32> != temp<31> then //true, if adding led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 33:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'syntax = format(add, %s, %s, %s, rd.syntax, rs.syntax, rt.syntax) image = format(000000%s%s%s00000100000, rs.image, rt.image, rd.image) action = { temp = rs<31>::rs + rt<31>::rt; // concat with greatest significant bits in each, then add if temp<32> != temp<31> then //true, if adding led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 33:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op add (rd: REG, rs: REG, rt: REG) syntax = format(add, %s, %s, %s, rd.syntax, rs.syntax, rt.syntax) image = format(000000%s%s%s00000100000, rs.image, rt.image, rd.image) action = { temp = rs<31>::rs + rt<31>::rt; // concat with greatest significant bits in each, then add if temp<32> != temp<31> then //true, if adding led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 48:24 ERROR (TREEWALKER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/java/ru/ispras/microtesk/translator/simnml/grammar/SimnMLTreeWalker.g: node from line 48:24 mismatched tree node: rs expecting <DOWN>" minimips.nml 48:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '(rd: REGISTER, rs: REGISTER, rt: REGISTER)'." minimips.nml 48:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op sub (rd: REGISTER, rs: REGISTER, rt: REGISTER) syntax = format(sub, %s, %s, %s, rd.syntax, rs.syntax, rt.syntax) image = format(000000%s%s%s00000100010, rs.image, rt.image, rd.image) action = { temp = rs<31>::rs - rt<31>::rt; // concat with greatest significant bits in each, then substract if temp<32> != temp<31> then // true, if substraction led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 63:23 ERROR (TREEWALKER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/java/ru/ispras/microtesk/translator/simnml/grammar/SimnMLTreeWalker.g: node from line 63:23 mismatched tree node: rt expecting <DOWN>" minimips.nml 63:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '(rs: REGISTER, rt: REGISTER, immediate: BYTE)'." minimips.nml 63:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op addi (rs: REGISTER, rt: REGISTER, immediate: BYTE) syntax = format( image = format(000000%s%s%d00000000, rs.image, rt.image, immediate) action = { temp = rs<31>::rs + coerce(int(33), rt); // concat with greatest significant bits in each, then add if temp<32> != temp<31> then // true, if adding led to carrying into the concatenated bit (overflow happened) exception(IntegerOverflow); else rd = temp<31..0>; endif; }'." minimips.nml 99:46 ERROR (SEMANTIC): "The immediate value offset does not provide any callable attributes." minimips.nml 103:9 ERROR (SEMANTIC): "The 'M' symbol is not declared." minimips.nml 103:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'M[address + offset * DATA_WORD_SIZE]'." minimips.nml 103:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'M[address + offset * DATA_WORD_SIZE]'." minimips.nml 103:9 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'M[address + offset * DATA_WORD_SIZE]'." minimips.nml 103:7 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'rt = M[address + offset * DATA_WORD_SIZE]'." minimips.nml 103:7 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'rt = M[address + offset * DATA_WORD_SIZE]'." minimips.nml 103:7 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '{ rt = M[address + offset * DATA_WORD_SIZE]; }'." minimips.nml 107:2 ERROR (TREEWALKER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/java/ru/ispras/microtesk/translator/simnml/grammar/SimnMLTreeWalker.g: node from line 107:2 mismatched tree node: op expecting <UP>" minimips.nml 99:2 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'action = { rt = M[address + offset * DATA_WORD_SIZE]; }'." minimips.nml 98:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'syntax = format(lb %s, %d(%s), rt.syntax, offset.syntax, address.syntax) image = format(100011%s%s%d00000000, address.image, rt.image, offset) action = { rt = M[address + offset * DATA_WORD_SIZE]; }'." minimips.nml 98:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op lb (rt: REG, address: REG, offset: BYTE) syntax = format(lb %s, %d(%s), rt.syntax, offset.syntax, address.syntax) image = format(100011%s%s%d00000000, address.image, rt.image, offset) action = { rt = M[address + offset * DATA_WORD_SIZE]; }'." minimips.nml 117:58 ERROR (SEMANTIC): "The immediate value immed does not provide any callable attributes." minimips.nml 129:17 ERROR (SEMANTIC): "Incorrect format specification. The number of arguments specified in the format string (3) does not match to the number of provided argumens (2)." minimips.nml 139:14 ERROR (TREEWALKER): "/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/src/main/java/ru/ispras/microtesk/translator/simnml/grammar/SimnMLTreeWalker.g: node from after line 139:14 mismatched tree node: UP expecting <DOWN>" minimips.nml 139:14 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'card()'." minimips.nml 139:8 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'card()'." minimips.nml 139:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '(addr: card())'." minimips.nml 139:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op j (addr: card()) syntax = format(slt %s, %s, %s, rd.syntax, rs.syntax, rt.syntax) image = format(000010%s%s%s00000101010, rs.image, rt.image rd.image) action = { BRANCH = 1; JMPADDR = 4 * immed; }'." minimips.nml 150:3 ERROR (SEMANTIC): "The 'add' item of the 'Operations' OR-rule is not defined or is not a OP definition." minimips.nml 150:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op Operations = add | sub | addi | and | or | lw | sw //is it suitable here? | lui | beq | slt | slti | j'." minimips.nml 170:22 ERROR (SEMANTIC): "The 'Operations' primitive is not defined or does not have the 'OP' type." minimips.nml 170:13 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'Operations'." minimips.nml 170:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: '(command: Operations)'." minimips.nml 170:3 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op miniMips (command: Operations) syntax = command.syntax image = command.image action = { REGISTERS[0] = 0; BRANCH = 0; command.action; if BRANCH == 0 then // If the flag is not set, proceeds to the next instruction PC = PC + 4; else // Otherwise, transfers control to the jump address PC = JMPADDR; endif; }'." minimips.nml 188:5 ERROR (SEMANTIC): "The 'miniMips' item of the 'instruction' OR-rule is not defined or is not a OP definition." minimips.nml 188:5 ERROR (SEMANTIC): "Failed to recognize the grammar structure. It will be ignored: 'op instruction = miniMips'."
Updated by Alexander Kamkin about 10 years ago
Система команд minimips:
(OP_SPECIAL, "100000", '0', '0', OP_ADD , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- ADD (OP_NORMAL , "001000", '0', '0', OP_ADD , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '1', LVL_EX , '1', '0', D_RT), -- ADDI (OP_NORMAL , "001001", '0', '0', OP_ADDU , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_RT), -- ADDIU (OP_SPECIAL, "100001", '0', '0', OP_ADDU , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- ADDU (OP_SPECIAL, "100100", '0', '0', OP_AND , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- AND (OP_NORMAL , "001100", '0', '0', OP_AND , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_RT), -- ANDI (OP_NORMAL , "000100", '1', '0', OP_EQU , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_DI , '0', '0', D_RT), -- BEQ (OP_REGIMM , "000001", '1', '0', OP_LPOS , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- BGEZ (OP_REGIMM , "010001", '1', '1', OP_LPOS , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_31), -- BGEZAL (OP_NORMAL , "000111", '1', '0', OP_SPOS , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- BGTZ (OP_NORMAL , "000110", '1', '0', OP_LNEG , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- BLEZ (OP_REGIMM , "000000", '1', '0', OP_SNEG , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- BLTZ (OP_REGIMM , "010000", '1', '1', OP_SNEG , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_31), -- BLTZAL (OP_NORMAL , "000101", '1', '0', OP_NEQU , '0', '0', '1', OFS_SESH, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_DI , '0', '0', D_RT), -- BNE (OP_SPECIAL, "001101", '0', '0', OP_OUI , '0', '0', '0', OFS_PCRL, IT_BREAK, '0', '0', '1', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- BREAK (OP_COP0 , "000001", '0', '0', OP_OP2 , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_DI , '1', '1', D_00), -- COP0 (OP_NORMAL , "000010", '1', '0', OP_OUI , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- J (OP_NORMAL , "000011", '1', '1', OP_OUI , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_EX , '1', '0', D_31), -- JAL (OP_SPECIAL, "001001", '1', '1', OP_OUI , '0', '0', '0', OFS_NULL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_RD), -- JALR (OP_SPECIAL, "001000", '1', '0', OP_OUI , '0', '0', '0', OFS_NULL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- JR (OP_NORMAL , "001111", '0', '0', OP_LUI , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_EX , '1', '0', D_RT), -- LUI (OP_NORMAL , "100011", '0', '0', OP_OUI , '1', '0', '0', OFS_SEXT, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_MEM, '1', '0', D_RT), -- LW (OP_NORMAL , "110000", '0', '0', OP_OUI , '1', '0', '0', OFS_SEXT, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_MEM, '1', '1', D_RT), -- LWC0 (OP_COP0 , "000000", '0', '0', OP_OP2 , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '1', '1', '0', '0', '0', LVL_DI , '1', '0', D_RD), -- MFC0 (OP_SPECIAL, "010000", '0', '0', OP_MFHI , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_EX , '1', '0', D_RD), -- MFHI (OP_SPECIAL, "010010", '0', '0', OP_MFLO , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '1', '0', '0', LVL_EX , '1', '0', D_RD), -- MFLO (OP_COP0 , "000100", '0', '0', OP_OP2 , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '0', '0', '0', LVL_DI , '1', '1', D_RD), -- MTC0 (OP_SPECIAL, "010001", '0', '0', OP_MTHI , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- MTHI (OP_SPECIAL, "010011", '0', '0', OP_MTLO , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- MTLO (OP_SPECIAL, "011000", '0', '0', OP_MULT , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '0', '0', D_RT), -- MULT (OP_SPECIAL, "011001", '0', '0', OP_MULTU, '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '0', '0', D_RT), -- MULT (OP_SPECIAL, "100111", '0', '0', OP_NOR , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- NOR (OP_SPECIAL, "100101", '0', '0', OP_OR , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- OR (OP_NORMAL , "001101", '0', '0', OP_OR , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_RT), -- ORI (OP_SPECIAL, "000000", '0', '0', OP_SLL , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '0', '1', '0', LVL_EX , '1', '0', D_RD), -- SLL (OP_SPECIAL, "000100", '0', '0', OP_SLL , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SLLV (OP_SPECIAL, "101010", '0', '0', OP_SLT , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SLT (OP_NORMAL , "001010", '0', '0', OP_SLT , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '1', LVL_EX , '1', '0', D_RT), -- SLTI (OP_NORMAL , "001011", '0', '0', OP_SLTU , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '1', LVL_EX , '1', '0', D_RT), -- SLTIU (OP_SPECIAL, "101011", '0', '0', OP_SLTU , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SLTU (OP_SPECIAL, "000011", '0', '0', OP_SRA , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '0', '1', '0', LVL_EX , '1', '0', D_RD), -- SRA (OP_SPECIAL, "000111", '0', '0', OP_SRA , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SRAV (OP_SPECIAL, "000010", '0', '0', OP_SRL , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '1', '0', '1', '0', LVL_EX , '1', '0', D_RD), -- SRL (OP_SPECIAL, "000110", '0', '0', OP_SRL , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SRLV (OP_SPECIAL, "100010", '0', '0', OP_SUB , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SUB (OP_SPECIAL, "100011", '0', '0', OP_SUBU , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- SUBU (OP_NORMAL , "101011", '0', '0', OP_OP2 , '1', '1', '0', OFS_SEXT, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_DI , '0', '0', D_RT), -- SW (OP_NORMAL , "111000", '0', '0', OP_OP2 , '1', '1', '0', OFS_SEXT, IT_NOEXC, '0', '1', '0', '0', '0', '0', LVL_DI , '0', '0', D_RT), -- SWC0 (OP_SPECIAL, "001100", '0', '0', OP_OUI , '0', '0', '0', OFS_PCRL, IT_SCALL, '0', '0', '1', '1', '0', '0', LVL_DI , '0', '0', D_RT), -- SYSC (OP_SPECIAL, "100110", '0', '0', OP_XOR , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '0', '0', '0', LVL_EX , '1', '0', D_RD), -- XOR (OP_NORMAL , "001110", '0', '0', OP_XOR , '0', '0', '0', OFS_PCRL, IT_NOEXC, '0', '0', '0', '1', '0', '0', LVL_EX , '1', '0', D_RT) -- XORI
Updated by Andrei Tatarnikov about 10 years ago
miniMIPS was included in the build script (r2781).
Updated by Platon Bibik about 10 years ago
It is necessary to declare two operations with name "jalr" (second one takes an implicit parameter rd), but translator says that it is impossible to declare two operations with identical names.
Updated by Alexander Kamkin about 10 years ago
There are two ways to solve the problem:
- You can declare two operations with different names with identical names in
format
. - You can ignore
jalr
with the implicit parameter (there is no such instruction in MIPS - it's just a syntax sugaring).
My suggestion is 2.
Updated by Andrei Tatarnikov about 10 years ago
Fixed some issues that caused our tests to fail - r2884. Be careful!
Updated by Andrei Tatarnikov about 10 years ago
Found more bugs - r2914 and r2915(jumps did not work)!
Updated by Andrei Tatarnikov almost 10 years ago
- Status changed from New to Resolved
- % Done changed from 50 to 100
Made an update related to PC assigning and delay slot issues: r3228.
Now, as I can see, the specification is ready.
Updated by Andrei Tatarnikov almost 10 years ago
- Status changed from Resolved to Closed
- Published in build set to 150305