This patch adds support for symbolic constants for mips64r6.
Details
Diff Detail
Event Timeline
This patch affects all Mips subtargets. Could you correct the title and summary of the patch?
lib/Target/Mips/AsmParser/MipsAsmParser.cpp | ||
---|---|---|
4611–4619 | The change to parseImm() breaks the following code: .set foo,$25 jr foo Before this change, the 'foo' was parsed by parseAnyRegister() and was added to the operand list as the register $25. After this change, it's parsed by parseImm() and added to the operand list as the expression 'foo'. | |
test/MC/Mips/mips64r6/immediate.s | ||
1 | (regarding the directory): This isn't mips64r6 specific so it should be moved up one level to test/MC/Mips |
Hello,
I've checked this change and concluded that provided test (test/MC/Mips/mips64r6/immediate.s) is passing successfully after r277995.
@sdardis
Do you maybe know some case for which mentioned revision does not work well?
Abandoning change since per Aleksandar's words it was fixed by:
commit 7dd6fd6b287f4a425ad4c85c485afa69d3bbf0f8
Author: Daniel Sanders <daniel.sanders@imgtec.com>
Date: Mon Aug 8 11:50:25 2016 +0000
Re-commit r277988: [mips][ias] Fix all the hacks related to MIPS-specific unary operators (%hi/%lo/%gp_rel/etc.). Hopefully with the MSVC builds fixed. I've added a missing '#include <tuple>' that gcc and clang don't seem to need.
The change to parseImm() breaks the following code:
Before this change, the 'foo' was parsed by parseAnyRegister() and was added to the operand list as the register $25. After this change, it's parsed by parseImm() and added to the operand list as the expression 'foo'.