The patch creates microMIPS64r6 subtarget and implements DALIGN, DAUI, DAHI, DATI, DEXT, DEXTM and DEXTU instructions.
Details
Diff Detail
Event Timeline
lib/Target/Mips/Disassembler/MipsDisassembler.cpp | ||
---|---|---|
847 | hasMips64r6() isn't needed. The predicates are cumulative so hasMips32r6() is true for MIPS64r6 too. | |
lib/Target/Mips/MicroMips32r6InstrInfo.td | ||
286 | I'm on the fence about this. For consistency with the other namespaces, we shouldn't add '_64r6' but equally more descriptive names are generally a good thing. | |
lib/Target/Mips/MicroMips64r6InstrFormats.td | ||
2 | 80 cols? | |
15 | Please use the naming convention we used for MIPS32r6/MIPS64r6. The prefix should match the major opcode name. Then (where necessary) something to disambiguate variations of the major opcode. Lastly a '_FM' suffix. For example: DOUBLE_ADD_UPPER_IMM -> DAUI_FM. DOUBLE_EXT_BIT_FIELD -> POOL32S_EXTBITS_FM. CONCAT_EXTRACT -> POOL32S_DALIGN_FM. | |
lib/Target/Mips/MicroMips64r6InstrInfo.td | ||
2 | 80 cols? | |
44 | Optional nit: DAHI_DATI_DESC_BASE? It's easier to format when the names aren't so long and we generally don't expand the mnemonic to the words it stands for. Similarly for the other lengthy *_DESC_BASE's below. | |
44–46 | Indentation | |
57–58 | Indendation | |
91–101 | Why do some of these use StdMMR6Rel and others use R6MM6Rel? |
LGTM with the '-*- tablegen -*-' issue fixed.
lib/Target/Mips/MicroMips64r6InstrFormats.td | ||
---|---|---|
1–2 | Unfortunately, this bit needs to be on the first line. It tells emacs (and presumably other editors) what the file format is. I'd drop the redundant 'Mips64r6' in 'Mips64r6 Instruction Formats'. | |
lib/Target/Mips/MicroMips64r6InstrInfo.td | ||
2 | Likewise |
hasMips64r6() isn't needed. The predicates are cumulative so hasMips32r6() is true for MIPS64r6 too.