[Hexagon] Remove USR_OVF from CtrRegs register class

USR_OVF is a subregister of USR, which is a member of CtrRegs. Having both
a register and its proper subregister in the same register class has bad
consequences for lane mask calculation: based solely on the lane mask info,
USR_OVF would not appear to be a subregister of USR.

llvm-svn: 282192
This commit is contained in:
Krzysztof Parzyszek 2016-09-22 20:59:41 +00:00
parent 4e87f8e468
commit 047695086f

View File

@ -260,7 +260,10 @@ def CtrRegs : RegisterClass<"Hexagon", [i32], 32,
(add LC0, SA0, LC1, SA1,
P3_0, C5,
M0, M1, C6, C7, C8, CS0, CS1, UPCL, UPCH,
USR, USR_OVF, UGP, GP, PC)>;
USR, UGP, GP, PC)>;
let isAllocatable = 0 in
def UsrBits : RegisterClass<"Hexagon", [i1], 0, (add USR_OVF)>;
let Size = 64, isAllocatable = 0 in
def CtrRegs64 : RegisterClass<"Hexagon", [i64], 64,