diff options
| author | Daniel Sanders <daniel.sanders@imgtec.com> | 2014-03-27 15:00:44 +0000 |
|---|---|---|
| committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2014-03-27 15:00:44 +0000 |
| commit | 64cf5a4eb2e762098f75ce479fc929bac35eb5eb (patch) | |
| tree | 7433bec7dcd5065d34698e4d5e9c2b5c42226164 /llvm | |
| parent | 4dd18130437942695dc7661347367bba5b43fa43 (diff) | |
| download | bcm5719-llvm-64cf5a4eb2e762098f75ce479fc929bac35eb5eb.tar.gz bcm5719-llvm-64cf5a4eb2e762098f75ce479fc929bac35eb5eb.zip | |
[mips] Attempting to use register $32 should be an error instead of an assertion.
Reviewers: matheusalmeida
Reviewed By: matheusalmeida
Differential Revision: http://llvm-reviews.chandlerc.com/D3201
llvm-svn: 204932
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/MC/Mips/mips-register-names-invalid.s | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 602bf04dac3..5bc8f9d4b63 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -1217,7 +1217,7 @@ unsigned MipsAsmParser::getGPR(int RegNo) { int MipsAsmParser::matchRegisterByNumber(unsigned RegNum, unsigned RegClass) { if (RegNum > - getContext().getRegisterInfo()->getRegClass(RegClass).getNumRegs()) + getContext().getRegisterInfo()->getRegClass(RegClass).getNumRegs() - 1) return -1; if (RegClass == Mips::GPR32RegClassID || RegClass == Mips::GPR64RegClassID) diff --git a/llvm/test/MC/Mips/mips-register-names-invalid.s b/llvm/test/MC/Mips/mips-register-names-invalid.s new file mode 100644 index 00000000000..df1054fed42 --- /dev/null +++ b/llvm/test/MC/Mips/mips-register-names-invalid.s @@ -0,0 +1,8 @@ +# RUN: not llvm-mc %s -triple=mips-unknown-freebsd -show-encoding 2>%t0 +# RUN: FileCheck %s < %t0 + +# $32 used to trigger an assertion instead of the usual error message due to +# an off-by-one bug. + +# CHECK: :[[@LINE+1]]:18: error: invalid operand for instruction + add $32, $0, $0 |

