Implement microMIPS branch instructions BEQZ16 and BNEZ16.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/Mips/AsmParser/MipsAsmParser.cpp | ||
---|---|---|
1078 ↗ | (On Diff #14410) | I think you can use here "if (Offset.getImm() % 2 != 0)" instead of a call to OffsetToAlignment. |
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | ||
241 ↗ | (On Diff #14410) | You can put fixup_MICROMIPS_PC7_S1 on the previous line - it's within the 80 columns limit. |
lib/Target/Mips/MicroMipsInstrInfo.td | ||
299 ↗ | (On Diff #14410) | Note that MipsLongBranch has to be fixed for begz16 and bnez16, because it currently assumes that all branches have 16-bit offsets, and will produce wrong code if branches whose allowed offsets are [-64, ..., 63] are present. If long branch for begz16 and bnez16 (when it's implemented) doesn't clobber AT, "let Defs = [AT]" won't be needed. (You might add a TODO comment for all this in MipsLongBranch.cpp or here). |
lib/Target/Mips/AsmParser/MipsAsmParser.cpp | ||
---|---|---|
1219 ↗ | (On Diff #17607) | You should use 8 instead of 7. |
lib/Target/Mips/MicroMipsInstrInfo.td | ||
423 ↗ | (On Diff #17607) | MipsLongBranch.cpp file is better place for this comment. Also, I was wrong in the previous review comment - allowed offsets for beqz16 and bnez16 are [-128, -126, ..., 126] |