Skip to content

Commit

Permalink
[X86][Asm] Allow negative immediate to appear before bracketed expres…
Browse files Browse the repository at this point in the history
…sion

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: D36229

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

llvm-svn: 310529
  • Loading branch information
Coby Tayree committed Aug 9, 2017
1 parent 7683ca0 commit 7d442fc
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions clang/test/CodeGen/ms-inline-asm.c
Expand Up @@ -484,13 +484,13 @@ void t37() {
__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}"()
Expand Down Expand Up @@ -655,6 +655,12 @@ void t45() {
// 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}
Expand Down

0 comments on commit 7d442fc

Please sign in to comment.