| OLD | NEW |
| 1 //===-- ARMSelectionDAGInfo.cpp - ARM SelectionDAG Info -------------------===// | 1 //===-- ARMSelectionDAGInfo.cpp - ARM SelectionDAG Info -------------------===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file implements the ARMSelectionDAGInfo class. | 10 // This file implements the ARMSelectionDAGInfo class. |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 // GNU library uses (ptr, value, size) | 145 // GNU library uses (ptr, value, size) |
| 146 // See RTABI section 4.3.4 | 146 // See RTABI section 4.3.4 |
| 147 SDValue ARMSelectionDAGInfo:: | 147 SDValue ARMSelectionDAGInfo:: |
| 148 EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl, | 148 EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc dl, |
| 149 SDValue Chain, SDValue Dst, | 149 SDValue Chain, SDValue Dst, |
| 150 SDValue Src, SDValue Size, | 150 SDValue Src, SDValue Size, |
| 151 unsigned Align, bool isVolatile, | 151 unsigned Align, bool isVolatile, |
| 152 MachinePointerInfo DstPtrInfo) const { | 152 MachinePointerInfo DstPtrInfo) const { |
| 153 const ARMSubtarget &Subtarget = DAG.getTarget().getSubtarget<ARMSubtarget>(); | 153 const ARMSubtarget &Subtarget = DAG.getTarget().getSubtarget<ARMSubtarget>(); |
| 154 // Use default for non-AAPCS (or MachO) subtargets | 154 // Use default for non-AAPCS (or MachO) subtargets |
| 155 if (!Subtarget.isAAPCS_ABI() || Subtarget.isTargetMachO() || | 155 // @LOCALMOD-START |
| 156 if (Subtarget.isTargetNaCl() || !EnableARMAEABIFunctions || |
| 157 !Subtarget.isAAPCS_ABI() || Subtarget.isTargetMachO() || |
| 156 Subtarget.isTargetWindows()) | 158 Subtarget.isTargetWindows()) |
| 157 return SDValue(); | 159 return SDValue(); |
| 160 // @LOCALMOD-END |
| 158 | 161 |
| 159 const ARMTargetLowering &TLI = | 162 const ARMTargetLowering &TLI = |
| 160 *DAG.getTarget().getSubtarget<ARMSubtarget>().getTargetLowering(); | 163 *DAG.getTarget().getSubtarget<ARMSubtarget>().getTargetLowering(); |
| 161 TargetLowering::ArgListTy Args; | 164 TargetLowering::ArgListTy Args; |
| 162 TargetLowering::ArgListEntry Entry; | 165 TargetLowering::ArgListEntry Entry; |
| 163 | 166 |
| 164 // First argument: data pointer | 167 // First argument: data pointer |
| 165 Type *IntPtrTy = TLI.getDataLayout()->getIntPtrType(*DAG.getContext()); | 168 Type *IntPtrTy = TLI.getDataLayout()->getIntPtrType(*DAG.getContext()); |
| 166 Entry.Node = Dst; | 169 Entry.Node = Dst; |
| 167 Entry.Ty = IntPtrTy; | 170 Entry.Ty = IntPtrTy; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 190 CLI.setDebugLoc(dl).setChain(Chain) | 193 CLI.setDebugLoc(dl).setChain(Chain) |
| 191 .setCallee(TLI.getLibcallCallingConv(RTLIB::MEMSET), | 194 .setCallee(TLI.getLibcallCallingConv(RTLIB::MEMSET), |
| 192 Type::getVoidTy(*DAG.getContext()), | 195 Type::getVoidTy(*DAG.getContext()), |
| 193 DAG.getExternalSymbol(TLI.getLibcallName(RTLIB::MEMSET), | 196 DAG.getExternalSymbol(TLI.getLibcallName(RTLIB::MEMSET), |
| 194 TLI.getPointerTy()), std::move(Args), 0) | 197 TLI.getPointerTy()), std::move(Args), 0) |
| 195 .setDiscardResult(); | 198 .setDiscardResult(); |
| 196 | 199 |
| 197 std::pair<SDValue,SDValue> CallResult = TLI.LowerCallTo(CLI); | 200 std::pair<SDValue,SDValue> CallResult = TLI.LowerCallTo(CLI); |
| 198 return CallResult.second; | 201 return CallResult.second; |
| 199 } | 202 } |
| OLD | NEW |