summaryrefslogtreecommitdiff
path: root/lib/Target/Sparc/SparcInstrInfo.td
diff options
context:
space:
mode:
authorVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-06-03 00:21:54 +0000
committerVenkatraman Govindaraju <venkatra@cs.wisc.edu>2013-06-03 00:21:54 +0000
commit85cc972a06690507a2660fccb198319b0402105f (patch)
tree7ec54d8c20fb29845b06316d0a626ef59e11ee0b /lib/Target/Sparc/SparcInstrInfo.td
parent65ca7aa57d5e9b391f02a5686e7622deaac146f9 (diff)
downloadllvm-85cc972a06690507a2660fccb198319b0402105f.tar.gz
llvm-85cc972a06690507a2660fccb198319b0402105f.tar.bz2
llvm-85cc972a06690507a2660fccb198319b0402105f.tar.xz
Sparc: When storing 0, use %g0 directly in the store instruction instead of
using two instructions (sethi and store). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183090 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc/SparcInstrInfo.td')
-rw-r--r--lib/Target/Sparc/SparcInstrInfo.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td
index 8f2ba2655c..45ff113b72 100644
--- a/lib/Target/Sparc/SparcInstrInfo.td
+++ b/lib/Target/Sparc/SparcInstrInfo.td
@@ -815,4 +815,8 @@ def : Pat<(i32 (extloadi16 ADDRri:$src)), (LDUHri ADDRri:$src)>;
def : Pat<(i32 (zextloadi1 ADDRrr:$src)), (LDUBrr ADDRrr:$src)>;
def : Pat<(i32 (zextloadi1 ADDRri:$src)), (LDUBri ADDRri:$src)>;
+// store 0, addr -> store %g0, addr
+def : Pat<(store (i32 0), ADDRrr:$dst), (STrr ADDRrr:$dst, (i32 G0))>;
+def : Pat<(store (i32 0), ADDRri:$dst), (STri ADDRri:$dst, (i32 G0))>;
+
include "SparcInstr64Bit.td"