summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/ms-inline-asm.c
diff options
context:
space:
mode:
authorCoby Tayree <coby.tayree@intel.com>2017-08-09 13:31:41 +0000
committerCoby Tayree <coby.tayree@intel.com>2017-08-09 13:31:41 +0000
commit69eb696112e938f43d9e33dab9d710b38ad240e8 (patch)
treecd2bd27e631ed2622adc2b9f5f548c21c311106e /clang/test/CodeGen/ms-inline-asm.c
parentc4a4af47f35cec5a0820ff80544192eb392ae605 (diff)
downloadbcm5719-llvm-69eb696112e938f43d9e33dab9d710b38ad240e8.tar.gz
bcm5719-llvm-69eb696112e938f43d9e33dab9d710b38ad240e8.zip
[X86][Ms-InlineAsm] Extend MS Dot operator to accept "this" + struct/class pointers aliases
MS InlineAsm Dot operator accepts "Bases" such as "this" (cpp) and class/struct pointer typedef. This patch enhance its implementation with this behavior. Differential Revision: https://reviews.llvm.org/D36450 llvm-svn: 310472
Diffstat (limited to 'clang/test/CodeGen/ms-inline-asm.c')
-rw-r--r--clang/test/CodeGen/ms-inline-asm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/test/CodeGen/ms-inline-asm.c b/clang/test/CodeGen/ms-inline-asm.c
index 60dffb02b84..9f6852fd477 100644
--- a/clang/test/CodeGen/ms-inline-asm.c
+++ b/clang/test/CodeGen/ms-inline-asm.c
@@ -527,7 +527,7 @@ void cpuid() {
typedef struct {
int a;
int b;
-} A;
+} A, *pA;
typedef struct {
int b1;
@@ -539,7 +539,7 @@ typedef struct {
A c2;
int c3;
B c4;
-} C;
+} C, *pC;
void t39() {
// CHECK-LABEL: define void @t39
@@ -547,6 +547,8 @@ void t39() {
// CHECK: mov eax, [eax].4
__asm mov eax, [eax] A.b
// CHECK: mov eax, [eax] .4
+ __asm mov eax, [eax] pA.b
+// CHECK: mov eax, [eax] .4
__asm mov eax, fs:[0] A.b
// CHECK: mov eax, fs:[$$0] .4
__asm mov eax, [eax].B.b2.a
@@ -557,6 +559,8 @@ void t39() {
// CHECK: mov eax, fs:[$$0] .8
__asm mov eax, [eax]C.c4.b2.b
// CHECK: mov eax, [eax].24
+ __asm mov eax, [eax]pC.c4.b2.b
+// CHECK: mov eax, [eax].24
// CHECK: "~{eax},~{dirflag},~{fpsr},~{flags}"()
}
OpenPOWER on IntegriCloud