From: Coby Tayree Date: Wed, 25 Jan 2017 07:09:42 +0000 (+0000) Subject: [X86]Enable the use of 'mov' with a 64bit GPR and a large immediate X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cfd2ebb6d7af63995af261b788d48c8f7cab14d;p=llvm [X86]Enable the use of 'mov' with a 64bit GPR and a large immediate Enable the next form (intel style): "mov , " which is should be available, where stands for immediates which exceed the range of a singed 32bit integer Differential Revision: https://reviews.llvm.org/D28988 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293030 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index a647f69f80b..cb6cc935de8 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -2984,7 +2984,7 @@ def : InstAlias<"mov\t{$mem, $seg|$seg, $mem}", (MOV32sm SEGMENT_REG:$seg, i32me def : InstAlias<"mov\t{$seg, $mem|$mem, $seg}", (MOV32ms i32mem:$mem, SEGMENT_REG:$seg), 0>; // Match 'movq , ' as an alias for movabsq. -def : InstAlias<"movq\t{$imm, $reg|$reg, $imm}", (MOV64ri GR64:$reg, i64imm:$imm), 0>; +def : InstAlias<"mov{q}\t{$imm, $reg|$reg, $imm}", (MOV64ri GR64:$reg, i64imm:$imm), 0>; // Match 'movq GR64, MMX' as an alias for movd. def : InstAlias<"movq\t{$src, $dst|$dst, $src}", diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s index e5b1f9f995f..a8172fc6798 100644 --- a/test/MC/X86/intel-syntax.s +++ b/test/MC/X86/intel-syntax.s @@ -19,6 +19,8 @@ _main: mov EAX, DWORD PTR [RSP - 4] // CHECK: movq (%rsp), %rax mov RAX, QWORD PTR [RSP] +// CHECK: movabsq $4294967289, %rax + mov RAX, 4294967289 // CHECK: movl $-4, -4(%rsp) mov DWORD PTR [RSP - 4], -4 // CHECK: movq 0, %rcx