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 | ||
---|---|---|
850 | 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 | ||
1 | 80 cols? | |
14 | 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 | ||
1 | 80 cols? | |
43 | 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. | |
43–45 | Indentation | |
56–57 | Indendation | |
90–100 | Why do some of these use StdMMR6Rel and others use R6MM6Rel? |
LGTM with the '-*- tablegen -*-' issue fixed.
lib/Target/Mips/MicroMips64r6InstrFormats.td | ||
---|---|---|
2–3 | 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 | ||
3 | Likewise |
hasMips64r6() isn't needed. The predicates are cumulative so hasMips32r6() is true for MIPS64r6 too.