38 return ConstantPools->addEntry(
Streamer, Expr, 4, Loc);
42 ConstantPools->emitForCurrentSection(
Streamer);
43 ConstantPools->clearCacheForCurrentSection(
Streamer);
61 for (
unsigned II = 0,
IE = Size; II !=
IE; II++) {
62 const unsigned I = LittleEndian ? (Size - II - 1) : II;
63 Buffer[Size - II - 1] = uint8_t(Inst >> I * CHAR_BIT);
69 Size = (Suffix ==
'n' ? 2 : 4);
73 for (
unsigned II = 0,
IE = Size; II !=
IE; II = II + 2) {
74 const unsigned I0 = LittleEndian ? II + 0 : II + 1;
75 const unsigned I1 = LittleEndian ? II + 1 : II + 0;
76 Buffer[Size - II - 2] = uint8_t(Inst >> I0 * CHAR_BIT);
77 Buffer[Size - II - 1] = uint8_t(Inst >> I1 * CHAR_BIT);
121 if (STI.
getCPU() ==
"xscale")
128 }
else if (STI.
hasFeature(ARM::HasV8MMainlineOps))
136 else if (STI.
hasFeature(ARM::HasV8MBaselineOps))
154 return (STI.
hasFeature(ARM::HasV8MBaselineOps) &&
184 }
else if (STI.
hasFeature(ARM::FeatureRClass)) {
187 }
else if (STI.
hasFeature(ARM::FeatureMClass)) {
199 }
else if (STI.
hasFeature(ARM::FeatureThumb2)) {
211 emitFPU(ARM::FK_CRYPTO_NEON_FP_ARMV8);
213 emitFPU(ARM::FK_NEON_FP_ARMV8);
230 ? (STI.
hasFeature(ARM::FeatureVFPOnlySP) ? ARM::FK_FPV5_SP_D16
235 ? (STI.
hasFeature(ARM::FeatureVFPOnlySP) ? ARM::FK_FPV4_SP_D16
243 ? (STI.
hasFeature(ARM::FeatureFP16) ? ARM::FK_VFPV3XD_FP16
246 ? ARM::FK_VFPV3_D16_FP16
247 : ARM::FK_VFPV3_D16))
249 : (STI.
hasFeature(ARM::FeatureFP16) ? ARM::FK_VFPV3_FP16
289 else if (STI.
hasFeature(ARM::FeatureTrustZone))
291 else if (STI.
hasFeature(ARM::FeatureVirtualization))
const MCAsmInfo * getAsmInfo() const
virtual void AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *SRE)
virtual void emitFPU(unsigned FPU)
This class represents lattice values for constants.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
virtual void emitArchExtension(unsigned ArchExt)
virtual void EmitBytes(StringRef Data)
Emit the bytes in Data into the output.
Target specific streamer interface.
virtual void emitPad(int64_t Offset)
virtual void finishAttributeSection()
virtual void emitPersonality(const MCSymbol *Personality)
virtual void reset()
Reset any state between object emissions, i.e.
virtual void emitPersonalityIndex(unsigned Index)
MCContext & getContext() const
void emitCurrentConstantPool()
Callback used to implemnt the .ltorg directive.
virtual void emitInst(uint32_t Inst, char Suffix='\0')
virtual void emitObjectArch(ARM::ArchKind Arch)
Base class for the full range of assembler expressions which are needed for parsing.
Represent a reference to a symbol from inside an expression.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool startswith(StringRef Prefix) const
Check if this string starts with the given Prefix.
LLVM_NODISCARD LLVM_ATTRIBUTE_ALWAYS_INLINE bool empty() const
empty - Check if the string is empty.
virtual void emitMovSP(unsigned Reg, int64_t Offset=0)
static bool isV8M(const MCSubtargetInfo &STI)
virtual void emitCantUnwind()
ARMTargetStreamer(MCStreamer &S)
virtual void emitAttribute(unsigned Attribute, unsigned Value)
Streaming machine code generation interface.
virtual void emitRegSave(const SmallVectorImpl< unsigned > &RegList, bool isVector)
virtual void emitThumbSet(MCSymbol *Symbol, const MCExpr *Value)
virtual void emitSetFP(unsigned FpReg, unsigned SpReg, int64_t Offset=0)
virtual void emitUnwindRaw(int64_t StackOffset, const SmallVectorImpl< uint8_t > &Opcodes)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
~ARMTargetStreamer() override
virtual void emitFnStart()
MCStreamer & getStreamer()
static ARMBuildAttrs::CPUArch getArchForCPU(const MCSubtargetInfo &STI)
bool isVector(MCInstrInfo const &MCII, MCInst const &MCI)
void emitTargetAttributes(const MCSubtargetInfo &STI)
Emit the build attributes that only depend on the hardware that we expect.
const MCExpr * addConstantPoolEntry(const MCExpr *, SMLoc Loc)
Callback used to implement the ldr= pseudo.
virtual void emitArch(ARM::ArchKind Arch)
virtual void emitIntTextAttribute(unsigned Attribute, unsigned IntValue, StringRef StringValue="")
bool hasFeature(unsigned Feature) const
Generic base class for all target subtargets.
bool isLittleEndian() const
True if the target is little endian.
virtual void emitHandlerData()
LLVM Value Representation.
StringRef - Represent a constant reference to a string, i.e.
Represents a location in source code.
virtual void switchVendor(StringRef Vendor)
virtual void emitTextAttribute(unsigned Attribute, StringRef String)