003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
Target
/
AArch64
/
MCTargetDesc
/
📁
..
📄
AArch64AddressingModes.h
(26.68 KB)
📄
AArch64AsmBackend.cpp
(29.94 KB)
📄
AArch64ELFObjectWriter.cpp
(18.62 KB)
📄
AArch64ELFStreamer.cpp
(7.53 KB)
📄
AArch64ELFStreamer.h
(1.05 KB)
📄
AArch64FixupKinds.h
(2.22 KB)
📄
AArch64InstPrinter.cpp
(66.74 KB)
📄
AArch64InstPrinter.h
(10.48 KB)
📄
AArch64MCAsmInfo.cpp
(4.1 KB)
📄
AArch64MCAsmInfo.h
(1.41 KB)
📄
AArch64MCCodeEmitter.cpp
(26.35 KB)
📄
AArch64MCExpr.cpp
(5.61 KB)
📄
AArch64MCExpr.h
(6.36 KB)
📄
AArch64MCTargetDesc.cpp
(18.02 KB)
📄
AArch64MCTargetDesc.h
(3.01 KB)
📄
AArch64MachObjectWriter.cpp
(14.96 KB)
📄
AArch64TargetStreamer.cpp
(2.21 KB)
📄
AArch64TargetStreamer.h
(4.37 KB)
📄
AArch64WinCOFFObjectWriter.cpp
(5.11 KB)
📄
AArch64WinCOFFStreamer.cpp
(7.07 KB)
📄
AArch64WinCOFFStreamer.h
(1.02 KB)
Editing: AArch64TargetStreamer.cpp
//===- AArch64TargetStreamer.cpp - AArch64TargetStreamer class ------------===// // // 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 // //===----------------------------------------------------------------------===// // // This file implements the AArch64TargetStreamer class. // //===----------------------------------------------------------------------===// #include "AArch64TargetStreamer.h" #include "llvm/MC/ConstantPools.h" #include "llvm/MC/MCSection.h" #include "llvm/MC/MCSubtargetInfo.h" using namespace llvm; // // AArch64TargetStreamer Implemenation // AArch64TargetStreamer::AArch64TargetStreamer(MCStreamer &S) : MCTargetStreamer(S), ConstantPools(new AssemblerConstantPools()) {} AArch64TargetStreamer::~AArch64TargetStreamer() = default; // The constant pool handling is shared by all AArch64TargetStreamer // implementations. const MCExpr *AArch64TargetStreamer::addConstantPoolEntry(const MCExpr *Expr, unsigned Size, SMLoc Loc) { return ConstantPools->addEntry(Streamer, Expr, Size, Loc); } void AArch64TargetStreamer::emitCurrentConstantPool() { ConstantPools->emitForCurrentSection(Streamer); } // finish() - write out any non-empty assembler constant pools. void AArch64TargetStreamer::finish() { ConstantPools->emitAll(Streamer); } void AArch64TargetStreamer::emitInst(uint32_t Inst) { char Buffer[4]; // We can't just use EmitIntValue here, as that will swap the // endianness on big-endian systems (instructions are always // little-endian). for (unsigned I = 0; I < 4; ++I) { Buffer[I] = uint8_t(Inst); Inst >>= 8; } getStreamer().emitBytes(StringRef(Buffer, 4)); } namespace llvm { MCTargetStreamer * createAArch64ObjectTargetStreamer(MCStreamer &S, const MCSubtargetInfo &STI) { const Triple &TT = STI.getTargetTriple(); if (TT.isOSBinFormatELF()) return new AArch64TargetELFStreamer(S); if (TT.isOSBinFormatCOFF()) return new AArch64TargetWinCOFFStreamer(S); return nullptr; } } // end namespace llvm
Upload File
Create Folder