llvm/lld/MachO/Arch/ARM64_32.cpp

//===- ARM64_32.cpp
//----------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "Arch/ARM64Common.h"
#include "InputFiles.h"
#include "Symbols.h"
#include "SyntheticSections.h"
#include "Target.h"

#include "lld/Common/ErrorHandler.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/MachO.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/MathExtras.h"

usingnamespacellvm::MachO;
usingnamespacellvm::support::endian;
usingnamespacelld;
usingnamespacelld::macho;

namespace {

struct ARM64_32 : ARM64Common {};

} // namespace

// These are very similar to ARM64's relocation attributes, except that we don't
// have the BYTE8 flag set.
static constexpr std::array<RelocAttrs, 11> relocAttrsArray{};

// The stub code is fairly similar to ARM64's, except that we load pointers into
// 32-bit 'w' registers, instead of the 64-bit 'x' ones.

static constexpr uint32_t stubCode[] =;

void ARM64_32::writeStub(uint8_t *buf8, const Symbol &sym,
                         uint64_t pointerVA) const {}

static constexpr uint32_t stubHelperHeaderCode[] =;

void ARM64_32::writeStubHelperHeader(uint8_t *buf8) const {}

static constexpr uint32_t stubHelperEntryCode[] =;

void ARM64_32::writeStubHelperEntry(uint8_t *buf8, const Symbol &sym,
                                    uint64_t entryVA) const {}

void ARM64_32::writeObjCMsgSendStub(uint8_t *buf, Symbol *sym,
                                    uint64_t stubsAddr, uint64_t &stubOffset,
                                    uint64_t selrefVA,
                                    Symbol *objcMsgSend) const {}

ARM64_32::ARM64_32() :{}

TargetInfo *macho::createARM64_32TargetInfo() {}