[x86][inline-asm]Allow a pack of Control Regs to be properly picked

Allows the incorporation of legit (x86) Control Regs within inline asm stataements

Differential Revision: https://reviews.llvm.org/D35903

llvm-svn: 309508
This commit is contained in:
Coby Tayree 2017-07-30 10:19:10 +00:00
parent ebac0b9c62
commit 5ac75b5744
2 changed files with 12 additions and 0 deletions

View File

@ -58,6 +58,7 @@ static const char *const GCCRegNames[] = {
"zmm18", "zmm19", "zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31", "k0", "k1",
"k2", "k3", "k4", "k5", "k6", "k7",
"cr0", "cr2", "cr3", "cr4", "cr8",
};
const TargetInfo::AddlRegName AddlRegNames[] = {

View File

@ -627,6 +627,17 @@ void t43() {
// CHECK: call void asm sideeffect inteldialect "mov eax, $0", "*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}})
}
void t44() {
// CHECK-LABEL: define void @t44
__asm {
mov cr0, eax
mov cr2, ebx
mov cr3, ecx
mov cr4, edx
}
// CHECK: call void asm sideeffect inteldialect "mov cr0, eax\0A\09mov cr2, ebx\0A\09mov cr3, ecx\0A\09mov cr4, edx", "~{cr0},~{cr2},~{cr3},~{cr4},~{dirflag},~{fpsr},~{flags}"()
}
void dot_operator(){
// CHECK-LABEL: define void @dot_operator
__asm { mov eax, 3[ebx]A.b}