If trying to use one past the end, this would assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252008
91177308-0d34-0410-b5e6-
96231b3b80d8
}
}
- const MCRegisterInfo *TRC = getContext().getRegisterInfo();
- unsigned RC = getRegClass(IsVgpr, RegWidth);
- if (RegIndexInClass > TRC->getRegClass(RC).getNumRegs())
+ const MCRegisterInfo *TRI = getContext().getRegisterInfo();
+ const MCRegisterClass RC = TRI->getRegClass(getRegClass(IsVgpr, RegWidth));
+ if (RegIndexInClass >= RC.getNumRegs())
return true;
- RegNo = TRC->getRegClass(RC).getRegister(RegIndexInClass);
+
+ RegNo = RC.getRegister(RegIndexInClass);
return false;
}
--- /dev/null
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s
+
+s_add_i32 s104, s0, s1
+// CHECK: error: invalid operand for instruction
+
+s_add_i32 s105, s0, s1
+// CHECK: error: invalid operand for instruction
+
+v_add_i32 v256, v0, v1
+// CHECK: error: invalid operand for instruction
+
+v_add_i32 v257, v0, v1
+// CHECK: error: invalid operand for instruction