mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
[TableGen] Add support for negative immediates to AsmMatcherEmitter
This adds support for creating an InstAlias with a negative immediate, i.e.: def NOT : InstAlias<"not $dst, $src", (XORI GR32:$dst, GR32:$src, -1)>; by resolving this problem: RISCVGenAsmMatcher.inc:95:11: error: expected '= constant-expression' or end of enumerator definition CVT_imm_-1, ^^^^^^^^^^ Patch by Jordy Potman, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226073 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
47ab8c106f
commit
5a40bef797
@ -979,6 +979,7 @@ static std::string getEnumNameForToken(StringRef Str) {
|
||||
case '.': Res += "_DOT_"; break;
|
||||
case '<': Res += "_LT_"; break;
|
||||
case '>': Res += "_GT_"; break;
|
||||
case '-': Res += "_MINUS_"; break;
|
||||
default:
|
||||
if ((*it >= 'A' && *it <= 'Z') ||
|
||||
(*it >= 'a' && *it <= 'z') ||
|
||||
@ -1848,6 +1849,7 @@ static void emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName,
|
||||
case MatchableInfo::ResOperand::ImmOperand: {
|
||||
int64_t Val = OpInfo.ImmVal;
|
||||
std::string Ty = "imm_" + itostr(Val);
|
||||
Ty = getEnumNameForToken(Ty);
|
||||
Signature += "__" + Ty;
|
||||
|
||||
std::string Name = "CVT_" + Ty;
|
||||
|
Loading…
Reference in New Issue
Block a user