Lines Matching +full:cpu +full:- +full:offset
1 //===- MachOUniversalWriter.cpp - MachO universal binary writer---*- C++-*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
106 auto CPU = std::make_pair(MachO::getCPUType(TT), MachO::getCPUSubType(TT)); in getMachoCPUFromTriple() local
107 if (!CPU.first) { in getMachoCPUFromTriple()
108 return CPU.first.takeError(); in getMachoCPUFromTriple()
110 if (!CPU.second) { in getMachoCPUFromTriple()
111 return CPU.second.takeError(); in getMachoCPUFromTriple()
113 return std::make_pair(*CPU.first, *CPU.second); in getMachoCPUFromTriple()
128 std::optional<MachoCPUTy> CPU = std::nullopt; in create() local
134 if (Bin->isMachOUniversalBinary()) in create()
136 ("archive member " + Bin->getFileName() + in create()
140 if (Bin->isMachO()) { in create()
144 if (CPU && CPU != ObjectCPU) { in create()
145 // If CPU != nullptr, one of MFO, IRFO will be != nullptr. in create()
146 StringRef PreviousName = MFO ? MFO->getFileName() : IRFO->getFileName(); in create()
149 ("archive member " + O->getFileName() + " cputype (" + in create()
153 Twine(CPU->first) + ") and cpusubtype(" + Twine(CPU->second) + in create()
161 if (!CPU) in create()
162 CPU.emplace(ObjectCPU); in create()
164 } else if (Bin->isIR()) { in create()
167 getMachoCPUFromTriple(O->getTargetTriple()); in create()
171 if (CPU && CPU != *ObjectCPU) { in create()
172 // If CPU != nullptr, one of MFO, IRFO will be != nullptr. in create()
174 IRFO ? IRFO->getFileName() : MFO->getFileName(); in create()
177 ("archive member " + O->getFileName() + " cputype (" + in create()
178 Twine(ObjectCPU->first) + ") and cpusubtype(" + in create()
179 Twine(ObjectCPU->second) + in create()
181 Twine(CPU->first) + ") and cpusubtype(" + Twine(CPU->second) + in create()
190 if (!CPU) in create()
191 CPU.emplace(*ObjectCPU); in create()
195 ("archive member " + Bin->getFileName() + in create()
212 Slice ArchiveSlice(*(MFO), MFO->is64Bit() ? 3 : 2); in create()
263 uint64_t Offset = in buildFatArchList() local
267 Offset = alignTo(Offset, 1ull << S.getP2Alignment()); in buildFatArchList()
268 if (Offset > FatArchTraits<FatArchTy>::OffsetLimit) in buildFatArchList()
271 ("fat file too large to be created because the offset field in the " in buildFatArchList()
274 Twine(FatArchTraits<FatArchTy>::BitCount) + "-bits and the offset " + in buildFatArchList()
275 Twine(Offset) + " for " + S.getBinary()->getFileName() + in buildFatArchList()
283 FatArch.offset = Offset; in buildFatArchList()
284 FatArch.size = S.getBinary()->getMemoryBufferRef().getBufferSize(); in buildFatArchList()
286 Offset += FatArch.size; in buildFatArchList()
317 size_t Offset = in writeUniversalArchsToStream() local
320 MemoryBufferRef BufferRef = Slices[Index].getBinary()->getMemoryBufferRef(); in writeUniversalArchsToStream()
321 assert((Offset <= FatArchList[Index].offset) && "Incorrect slice offset"); in writeUniversalArchsToStream()
322 Out.write_zeros(FatArchList[Index].offset - Offset); in writeUniversalArchsToStream()
324 Offset = FatArchList[Index].offset + BufferRef.getBufferSize(); in writeUniversalArchsToStream()
356 return sys::fs::can_execute(S.getBinary()->getFileName()); in writeUniversalBinary()
362 OutputFileName + ".temp-universal-%%%%%%", Mode); in writeUniversalBinary()
365 raw_fd_ostream Out(Temp->FD, false); in writeUniversalBinary()
367 if (Error DiscardError = Temp->discard()) in writeUniversalBinary()
371 return Temp->keep(OutputFileName); in writeUniversalBinary()