diff options
| author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-12 10:28:10 +0000 |
|---|---|---|
| committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-12 10:28:10 +0000 |
| commit | 564681c88d643ecbb3e5b9fd47479b83f4608c0a (patch) | |
| tree | 43f13236136a924339dd240a1f420e1e240bc196 /llvm/lib/Target/SystemZ/SystemZISelLowering.h | |
| parent | 761703a248bbb53be681c381a27b19c84e6744a5 (diff) | |
| download | bcm5719-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.h | 8 |
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 |

