diff options
| author | Bradley Smith <bradley.smith@arm.com> | 2014-05-15 11:06:16 +0000 |
|---|---|---|
| committer | Bradley Smith <bradley.smith@arm.com> | 2014-05-15 11:06:16 +0000 |
| commit | 13a76e5b88bd919e5def1287a08a2c8c6e559ae0 (patch) | |
| tree | 747174713d06667a2a08dafb04bc86d9188a9bd5 /llvm/lib/Target/ARM64/AsmParser | |
| parent | f32b690f690b151d4ed3f338630659768a7c8269 (diff) | |
| download | bcm5719-llvm-13a76e5b88bd919e5def1287a08a2c8c6e559ae0.tar.gz bcm5719-llvm-13a76e5b88bd919e5def1287a08a2c8c6e559ae0.zip | |
[ARM64] Add more simple diagnostics for immediate/shift ranges
llvm-svn: 208860
Diffstat (limited to 'llvm/lib/Target/ARM64/AsmParser')
| -rw-r--r-- | llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp b/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp index 99c6a13876f..892ba75b02b 100644 --- a/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp +++ b/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp @@ -3685,6 +3685,10 @@ bool ARM64AsmParser::showMatchError(SMLoc Loc, unsigned ErrCode) { "expected compatible register, symbol or integer in range [0, 4095]"); case Match_LogicalSecondSource: return Error(Loc, "expected compatible register or logical immediate"); + case Match_InvalidMovImm32Shift: + return Error(Loc, "expected 'lsl' with optional integer 0 or 16"); + case Match_InvalidMovImm64Shift: + return Error(Loc, "expected 'lsl' with optional integer 0, 16, 32 or 48"); case Match_AddSubRegShift32: return Error(Loc, "expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31]"); @@ -3719,6 +3723,10 @@ bool ARM64AsmParser::showMatchError(SMLoc Loc, unsigned ErrCode) { return Error(Loc, "immediate must be an integer in range [0, 31]."); case Match_InvalidImm0_63: return Error(Loc, "immediate must be an integer in range [0, 63]."); + case Match_InvalidImm0_127: + return Error(Loc, "immediate must be an integer in range [0, 127]."); + case Match_InvalidImm0_65535: + return Error(Loc, "immediate must be an integer in range [0, 65535]."); case Match_InvalidImm1_8: return Error(Loc, "immediate must be an integer in range [1, 8]."); case Match_InvalidImm1_16: @@ -4142,6 +4150,8 @@ bool ARM64AsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, case Match_LogicalSecondSource: case Match_AddSubRegShift32: case Match_AddSubRegShift64: + case Match_InvalidMovImm32Shift: + case Match_InvalidMovImm64Shift: case Match_InvalidMemoryIndexed8: case Match_InvalidMemoryIndexed16: case Match_InvalidMemoryIndexed32SImm7: @@ -4151,6 +4161,8 @@ bool ARM64AsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, case Match_InvalidImm0_15: case Match_InvalidImm0_31: case Match_InvalidImm0_63: + case Match_InvalidImm0_127: + case Match_InvalidImm0_65535: case Match_InvalidImm1_8: case Match_InvalidImm1_16: case Match_InvalidImm1_32: |

