[PATCH] D36230: [X86][Asm] Allow negative immediate to appear before bracketed expression
This revision was automatically updated to reflect the committed changes. Closed by commit rL310529: [X86][Asm] Allow negative immediate to appear before bracketed expression (authored by coby). Changed prior to commit: https://reviews.llvm.org/D36230?vs=109374&id=110485#toc Repository: rL LLVM https://reviews.llvm.org/D36230 Files: cfe/trunk/test/CodeGen/ms-inline-asm.c Index: cfe/trunk/test/CodeGen/ms-inline-asm.c === --- cfe/trunk/test/CodeGen/ms-inline-asm.c +++ cfe/trunk/test/CodeGen/ms-inline-asm.c @@ -484,13 +484,13 @@ __asm mov eax, (4 + 4) * 16 // CHECK: mov eax, $$128 __asm mov eax, 4 + 8 * -16 -// CHECK: mov eax, $$4294967172 +// CHECK: mov eax, $$-124 __asm mov eax, 4 + 16 / -8 // CHECK: mov eax, $$2 __asm mov eax, (16 + 16) / -8 -// CHECK: mov eax, $$4294967292 +// CHECK: mov eax, $$-4 __asm mov eax, ~15 -// CHECK: mov eax, $$4294967280 +// CHECK: mov eax, $$-16 __asm mov eax, 6 ^ 3 // CHECK: mov eax, $$5 // CHECK: "~{eax},~{dirflag},~{fpsr},~{flags}"() @@ -655,6 +655,12 @@ // 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 t46() { + // CHECK-LABEL: define void @t46 + __asm add eax, -128[eax] + // CHECK: call void asm sideeffect inteldialect "add eax, $$-128[eax]", "~{eax},~{flags},~{dirflag},~{fpsr},~{flags}"() +} + void dot_operator(){ // CHECK-LABEL: define void @dot_operator __asm { mov eax, 3[ebx]A.b} Index: cfe/trunk/test/CodeGen/ms-inline-asm.c === --- cfe/trunk/test/CodeGen/ms-inline-asm.c +++ cfe/trunk/test/CodeGen/ms-inline-asm.c @@ -484,13 +484,13 @@ __asm mov eax, (4 + 4) * 16 // CHECK: mov eax, $$128 __asm mov eax, 4 + 8 * -16 -// CHECK: mov eax, $$4294967172 +// CHECK: mov eax, $$-124 __asm mov eax, 4 + 16 / -8 // CHECK: mov eax, $$2 __asm mov eax, (16 + 16) / -8 -// CHECK: mov eax, $$4294967292 +// CHECK: mov eax, $$-4 __asm mov eax, ~15 -// CHECK: mov eax, $$4294967280 +// CHECK: mov eax, $$-16 __asm mov eax, 6 ^ 3 // CHECK: mov eax, $$5 // CHECK: "~{eax},~{dirflag},~{fpsr},~{flags}"() @@ -655,6 +655,12 @@ // 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 t46() { + // CHECK-LABEL: define void @t46 + __asm add eax, -128[eax] + // CHECK: call void asm sideeffect inteldialect "add eax, $$-128[eax]", "~{eax},~{flags},~{dirflag},~{fpsr},~{flags}"() +} + void dot_operator(){ // CHECK-LABEL: define void @dot_operator __asm { mov eax, 3[ebx]A.b} ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D36230: [X86][Asm] Allow negative immediate to appear before bracketed expression
rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land. Looks good Repository: rL LLVM https://reviews.llvm.org/D36230 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D36230: [X86][Asm] Allow negative immediate to appear before bracketed expression
coby created this revision. Herald added a subscriber: eraman. Currently, only non-negative immediate is allowed prior to a brac expression (memory reference). MASM / GAS does not have any problem cope with the left side of the real line, so we should be able to as well. llvm: https://reviews.llvm.org/D36229 Repository: rL LLVM https://reviews.llvm.org/D36230 Files: test/CodeGen/ms-inline-asm.c Index: test/CodeGen/ms-inline-asm.c === --- test/CodeGen/ms-inline-asm.c +++ test/CodeGen/ms-inline-asm.c @@ -484,13 +484,13 @@ __asm mov eax, (4 + 4) * 16 // CHECK: mov eax, $$128 __asm mov eax, 4 + 8 * -16 -// CHECK: mov eax, $$4294967172 +// CHECK: mov eax, $$-124 __asm mov eax, 4 + 16 / -8 // CHECK: mov eax, $$2 __asm mov eax, (16 + 16) / -8 -// CHECK: mov eax, $$4294967292 +// CHECK: mov eax, $$-4 __asm mov eax, ~15 -// CHECK: mov eax, $$4294967280 +// CHECK: mov eax, $$-16 __asm mov eax, 6 ^ 3 // CHECK: mov eax, $$5 // CHECK: "~{eax},~{dirflag},~{fpsr},~{flags}"() @@ -651,6 +651,12 @@ // 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 t46() { + // CHECK-LABEL: define void @t46 + __asm add eax, -128[eax] + // CHECK: call void asm sideeffect inteldialect "add eax, $$-128[eax]", "~{eax},~{flags},~{dirflag},~{fpsr},~{flags}"() +} + void dot_operator(){ // CHECK-LABEL: define void @dot_operator __asm { mov eax, 3[ebx]A.b} Index: test/CodeGen/ms-inline-asm.c === --- test/CodeGen/ms-inline-asm.c +++ test/CodeGen/ms-inline-asm.c @@ -484,13 +484,13 @@ __asm mov eax, (4 + 4) * 16 // CHECK: mov eax, $$128 __asm mov eax, 4 + 8 * -16 -// CHECK: mov eax, $$4294967172 +// CHECK: mov eax, $$-124 __asm mov eax, 4 + 16 / -8 // CHECK: mov eax, $$2 __asm mov eax, (16 + 16) / -8 -// CHECK: mov eax, $$4294967292 +// CHECK: mov eax, $$-4 __asm mov eax, ~15 -// CHECK: mov eax, $$4294967280 +// CHECK: mov eax, $$-16 __asm mov eax, 6 ^ 3 // CHECK: mov eax, $$5 // CHECK: "~{eax},~{dirflag},~{fpsr},~{flags}"() @@ -651,6 +651,12 @@ // 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 t46() { + // CHECK-LABEL: define void @t46 + __asm add eax, -128[eax] + // CHECK: call void asm sideeffect inteldialect "add eax, $$-128[eax]", "~{eax},~{flags},~{dirflag},~{fpsr},~{flags}"() +} + void dot_operator(){ // CHECK-LABEL: define void @dot_operator __asm { mov eax, 3[ebx]A.b} ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits