diff options
author | Jack Carter <jcarter@mips.com> | 2012-06-21 21:37:54 +0000 |
---|---|---|
committer | Jack Carter <jcarter@mips.com> | 2012-06-21 21:37:54 +0000 |
commit | 4db98becf798a013ee00b82691af154e261d648e (patch) | |
tree | 9fd7866078a3928defba8b05882d0b39566a1e63 /test | |
parent | 2b3e9580536dfb5666b9d91e99baebf6d45bfa5f (diff) | |
download | external_llvm-4db98becf798a013ee00b82691af154e261d648e.zip external_llvm-4db98becf798a013ee00b82691af154e261d648e.tar.gz external_llvm-4db98becf798a013ee00b82691af154e261d648e.tar.bz2 |
The inline asm operand modifier 'n' is suppose
to be generic across architectures. It has the
following description in the gnu sources:
Negate the immediate constant
Several Architectures such as x86 have local implementations
of operand modifier 'n' which go beyond the above description
slightly. This won't affect them.
Affected files:
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
Added 'n' to the switch cases.
test/CodeGen/Generic/asm-large-immediate.ll
Generic compiled test (x86 for me)
test/CodeGen/Mips/asm-large-immediate.ll
Mips compiled version of the generic one
Contributer: Jack Carter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158939 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Generic/asm-large-immediate.ll | 5 | ||||
-rw-r--r-- | test/CodeGen/Mips/asm-large-immediate.ll | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/test/CodeGen/Generic/asm-large-immediate.ll b/test/CodeGen/Generic/asm-large-immediate.ll index 605665b..d5d5eb6 100644 --- a/test/CodeGen/Generic/asm-large-immediate.ll +++ b/test/CodeGen/Generic/asm-large-immediate.ll @@ -1,8 +1,11 @@ -; RUN: llc < %s | grep 68719476738 +; RUN: llc < %s | FileCheck %s define void @test() { entry: +; CHECK: /* result: 68719476738 */ tail call void asm sideeffect "/* result: ${0:c} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) +; CHECK: /* result: -68719476738 */ + tail call void asm sideeffect "/* result: ${0:n} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) ret void } diff --git a/test/CodeGen/Mips/asm-large-immediate.ll b/test/CodeGen/Mips/asm-large-immediate.ll index d9bb0ca..246fff6 100644 --- a/test/CodeGen/Mips/asm-large-immediate.ll +++ b/test/CodeGen/Mips/asm-large-immediate.ll @@ -1,10 +1,10 @@ -; RUNx: llc -march=mipsel < %s | grep 68719476738 - ; RUN: llc -march=mipsel < %s | FileCheck %s define void @test() { entry: ; CHECK: /* result: 68719476738 */ tail call void asm sideeffect "/* result: ${0:c} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) +; CHECK: /* result: -68719476738 */ + tail call void asm sideeffect "/* result: ${0:n} */", "i,~{dirflag},~{fpsr},~{flags}"( i64 68719476738 ) ret void } |