summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SystemZ/SystemZISelLowering.h
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-08-12 10:28:10 +0000
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>2013-08-12 10:28:10 +0000
commit564681c88d643ecbb3e5b9fd47479b83f4608c0a (patch)
tree43f13236136a924339dd240a1f420e1e240bc196 /llvm/lib/Target/SystemZ/SystemZISelLowering.h
parent761703a248bbb53be681c381a27b19c84e6744a5 (diff)
downloadbcm5719-llvm-564681c88d643ecbb3e5b9fd47479b83f4608c0a.tar.gz
bcm5719-llvm-564681c88d643ecbb3e5b9fd47479b83f4608c0a.zip
[SystemZ] Use CLC and IPM to implement memcmp
For now this is restricted to fixed-length comparisons with a length in the range [1, 256], as for memcpy() and MVC. llvm-svn: 188163
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZISelLowering.h')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZISelLowering.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.h b/llvm/lib/Target/SystemZ/SystemZISelLowering.h
index 4098ff34b38..0036ce84aa7 100644
--- a/llvm/lib/Target/SystemZ/SystemZISelLowering.h
+++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.h
@@ -84,6 +84,9 @@ namespace SystemZISD {
// as for MVC.
CLC,
+ // Store the CC value in bits 29 and 28 of an integer.
+ IPM,
+
// Wrappers around the inner loop of an 8- or 16-bit ATOMIC_SWAP or
// ATOMIC_LOAD_<op>.
//
@@ -234,8 +237,9 @@ private:
unsigned BitSize) const;
MachineBasicBlock *emitAtomicCmpSwapW(MachineInstr *MI,
MachineBasicBlock *BB) const;
- MachineBasicBlock *emitMVCWrapper(MachineInstr *MI,
- MachineBasicBlock *BB) const;
+ MachineBasicBlock *emitMemMemWrapper(MachineInstr *MI,
+ MachineBasicBlock *BB,
+ unsigned Opcode) const;
};
} // end namespace llvm
OpenPOWER on IntegriCloud