llvm-project
56e8f039 - [Mips] Introduce ABI-specific register names and accessors (#224284)

Commit
16 days ago
[Mips] Introduce ABI-specific register names and accessors (#224284) To accommodate the P32/P64 ABIs, we need to separate machine registers from ABI register names and calling-convention roles. The existing register IDs use OABI names, even when another ABI assigns a different role to the same physical register. As a first step, describe OABI, NABI and PABI names with RegAltNameIndices. Extend TableGen's AsmMatcherEmitter with the opt-in ShouldEmitMatchRegisterAltNameWithIndex flag, which generates MatchRegisterAltName(StringRef, unsigned AltIdx). It matches only names associated with the selected index, allowing the same spelling to identify different registers across ABIs. Use the indexed matcher in shared MIPS register lookup for the assembler and named-register lowering, retaining compatibility aliases and diagnostics for deprecated spellings. Add ABI accessors for argument, temporary, saved and return registers, backed by shared register lists, and use them in lowering code. Keep the existing register IDs and assembly/MIR spellings for now, with a TODO for ABI-independent IDs.
Author
Parents
Loading