diff options
| author | Coby Tayree <coby.tayree@intel.com> | 2017-08-01 10:51:09 +0000 |
|---|---|---|
| committer | Coby Tayree <coby.tayree@intel.com> | 2017-08-01 10:51:09 +0000 |
| commit | d2bb48f0bdfff0b774acada5d32129fb0db1ec8f (patch) | |
| tree | 55eb272da55915c720301810e96d334ffc6dfcde | |
| parent | 4d5820d17100dbd244980de768fceab5325d3505 (diff) | |
| download | bcm5719-llvm-d2bb48f0bdfff0b774acada5d32129fb0db1ec8f.tar.gz bcm5719-llvm-d2bb48f0bdfff0b774acada5d32129fb0db1ec8f.zip | |
[x86][inline-asm]Allow a pack of Control Debug to be properly picked
Allows the incorporation of legit (x86) Debug Regs within inline asm stataements
Differential Revision: https://reviews.llvm.org/D36074
llvm-svn: 309672
| -rw-r--r-- | clang/lib/Basic/Targets/X86.cpp | 1 | ||||
| -rw-r--r-- | clang/test/CodeGen/ms-inline-asm.c | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp index 17f52471efb..c935dafd1be 100644 --- a/clang/lib/Basic/Targets/X86.cpp +++ b/clang/lib/Basic/Targets/X86.cpp @@ -59,6 +59,7 @@ static const char *const GCCRegNames[] = { "zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31", "k0", "k1", "k2", "k3", "k4", "k5", "k6", "k7", "cr0", "cr2", "cr3", "cr4", "cr8", + "dr0", "dr1", "dr2", "dr3", "dr6", "dr7", }; const TargetInfo::AddlRegName AddlRegNames[] = { diff --git a/clang/test/CodeGen/ms-inline-asm.c b/clang/test/CodeGen/ms-inline-asm.c index a0af14d9d8d..60dffb02b84 100644 --- a/clang/test/CodeGen/ms-inline-asm.c +++ b/clang/test/CodeGen/ms-inline-asm.c @@ -638,6 +638,19 @@ void t44() { // 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 t45() { + // CHECK-LABEL: define void @t45 + __asm { + mov dr0, eax + mov dr1, ebx + mov dr2, ebx + mov dr3, ecx + mov dr6, edx + mov dr7, ecx + } + // CHECK: call void asm sideeffect inteldialect "mov dr0, eax\0A\09mov dr1, ebx\0A\09mov dr2, ebx\0A\09mov dr3, ecx\0A\09mov dr6, edx\0A\09mov dr7, ecx", "~{dr0},~{dr1},~{dr2},~{dr3},~{dr6},~{dr7},~{dirflag},~{fpsr},~{flags}"() +} + void dot_operator(){ // CHECK-LABEL: define void @dot_operator __asm { mov eax, 3[ebx]A.b} |

