mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-02 07:41:38 +00:00
Make %EFLAGS unallocatable.
No CCR virtual registers should exist, and %EFLAGS is used in ways that can surprise RegAllocFast. llvm-svn: 112650
This commit is contained in:
parent
9fe6b84fb2
commit
7ffcddc113
@ -833,4 +833,15 @@ def VR256 : RegisterClass<"X86", [v32i8, v8i32, v4i64, v8f32, v4f64], 256,
|
|||||||
// Status flags registers.
|
// Status flags registers.
|
||||||
def CCR : RegisterClass<"X86", [i32], 32, [EFLAGS]> {
|
def CCR : RegisterClass<"X86", [i32], 32, [EFLAGS]> {
|
||||||
let CopyCost = -1; // Don't allow copying of status registers.
|
let CopyCost = -1; // Don't allow copying of status registers.
|
||||||
|
|
||||||
|
// EFLAGS is not allocatable.
|
||||||
|
let MethodProtos = [{
|
||||||
|
iterator allocation_order_end(const MachineFunction &MF) const;
|
||||||
|
}];
|
||||||
|
let MethodBodies = [{
|
||||||
|
CCRClass::iterator
|
||||||
|
CCRClass::allocation_order_end(const MachineFunction &MF) const {
|
||||||
|
return allocation_order_begin(MF);
|
||||||
|
}
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user