summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-10-11 23:03:53 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-10-11 23:03:53 +0000
commit4b38ce9f25b602a6cf5da100194caac364fd10df (patch)
tree4eb8bea6c1e0aabbd836a79f475421894dba8338
parent415c3dc501212ea990273430ba6bd4e5d963aa81 (diff)
downloadbcm5719-llvm-4b38ce9f25b602a6cf5da100194caac364fd10df.tar.gz
bcm5719-llvm-4b38ce9f25b602a6cf5da100194caac364fd10df.zip
Add missed mem-mem move patterns
llvm-svn: 83812
-rw-r--r--llvm/lib/Target/MSP430/MSP430InstrInfo.td7
-rw-r--r--llvm/test/CodeGen/MSP430/Inst16mm.ll8
-rw-r--r--llvm/test/CodeGen/MSP430/Inst8mm.ll8
3 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/Target/MSP430/MSP430InstrInfo.td b/llvm/lib/Target/MSP430/MSP430InstrInfo.td
index 37a949209da..f7e0d2bad63 100644
--- a/llvm/lib/Target/MSP430/MSP430InstrInfo.td
+++ b/llvm/lib/Target/MSP430/MSP430InstrInfo.td
@@ -243,6 +243,13 @@ def MOV16mr : Pseudo<(outs), (ins memdst:$dst, GR16:$src),
"mov.w\t{$src, $dst}",
[(store GR16:$src, addr:$dst)]>;
+def MOV8mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
+ "mov.b\t{$src, $dst}",
+ [(store (i8 (load addr:$src)), addr:$dst)]>;
+def MOV16mm : Pseudo<(outs), (ins memdst:$dst, memsrc:$src),
+ "mov.w\t{$src, $dst}",
+ [(store (i16 (load addr:$src)), addr:$dst)]>;
+
//===----------------------------------------------------------------------===//
// Arithmetic Instructions
diff --git a/llvm/test/CodeGen/MSP430/Inst16mm.ll b/llvm/test/CodeGen/MSP430/Inst16mm.ll
index dd4b570f8a1..5f492bbf0c0 100644
--- a/llvm/test/CodeGen/MSP430/Inst16mm.ll
+++ b/llvm/test/CodeGen/MSP430/Inst16mm.ll
@@ -4,6 +4,14 @@ target triple = "msp430-generic-generic"
@foo = common global i16 0, align 2
@bar = common global i16 0, align 2
+define void @mov() nounwind {
+; CHECK: mov:
+; CHECK: mov.w &bar, &foo
+ %1 = load i16* @bar
+ store i16 %1, i16* @foo
+ ret void
+}
+
define void @add() nounwind {
; CHECK: add:
; CHECK: add.w &bar, &foo
diff --git a/llvm/test/CodeGen/MSP430/Inst8mm.ll b/llvm/test/CodeGen/MSP430/Inst8mm.ll
index 5a128c5ed60..7e237a2817d 100644
--- a/llvm/test/CodeGen/MSP430/Inst8mm.ll
+++ b/llvm/test/CodeGen/MSP430/Inst8mm.ll
@@ -5,6 +5,14 @@ target triple = "msp430-generic-generic"
@foo = common global i8 0, align 1
@bar = common global i8 0, align 1
+define void @mov() nounwind {
+; CHECK: mov:
+; CHECK: mov.b &bar, &foo
+ %1 = load i8* @bar
+ store i8 %1, i8* @foo
+ ret void
+}
+
define void @add() nounwind {
; CHECK: add:
; CHECK: add.b &bar, &foo
OpenPOWER on IntegriCloud