1//===-- PPCMCAsmInfo.cpp - PPC asm properties -----------------------------===// 
  3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
  4// See https://llvm.org/LICENSE.txt for license information. 
  5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
  7//===----------------------------------------------------------------------===// 
  9// This file contains the declarations of the MCAsmInfoDarwin properties. 
  11//===----------------------------------------------------------------------===// 
  20void PPCELFMCAsmInfo::anchor() { }
 
  116 return Value & 0xffff;
 
  118 return (
Value >> 16) & 0xffff;
 
  120 return ((
Value + 0x8000) >> 16) & 0xffff;
 
  122 return (
Value >> 16) & 0xffff;
 
  124 return ((
Value + 0x8000) >> 16) & 0xffff;
 
  126 return (
Value >> 32) & 0xffff;
 
  128 return ((
Value + 0x8000) >> 32) & 0xffff;
 
  130 return (
Value >> 48) & 0xffff;
 
  132 return ((
Value + 0x8000) >> 48) & 0xffff;
 
 
  144 if (!
Value.isAbsolute())
 
 
  158 // The signedness of the result is dependent on the instruction operand. E.g. 
  159 // in addis 3,3,65535@l, 65535@l is signed. In the absence of information at 
  160 // parse time (!Asm), disable the folding. 
  161 std::optional<int64_t> MaybeInt =
 
 
  173 // FIXME: This is not always needed. For example, it is not needed in the 
  183 // ".comm align is in bytes but .align is pow-2." 
  188 // Uses '.section' before '.bss' directive 
  197 // Set up DWARF directives 
  200 // Exceptions handling 
 
  228 // A size of 8 is only supported by the assembler under 64-bit. 
  234 // Set up DWARF directives 
  237 // Support $ as PC in inline asm 
 
static bool evaluateAsRelocatable(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm)
 
const MCAsmInfo::AtSpecifier elfAtSpecifiers[]
 
static std::optional< int64_t > evaluateAsInt64(uint16_t specifier, int64_t Value)
 
const MCAsmInfo::AtSpecifier xcoffAtSpecifiers[]
 
static bool is64Bit(const char *name)
 
unsigned MinInstAlignment
Every possible instruction length is a multiple of this value.
 
void initializeAtSpecifiers(ArrayRef< AtSpecifier >)
 
const char * Data64bitsDirective
 
bool DollarIsPC
The '$' token, when not referencing an identifier or constant, refers to the current PC.
 
ExceptionHandling ExceptionsType
Exception handling format for the target. Defaults to None.
 
bool AllowDollarAtStartOfIdentifier
This is true if the assembler allows the "$" character at the start of of a string to be lexed as an ...
 
StringRef getSpecifierName(uint32_t S) const
 
bool UsesSetToEquateSymbol
Use .set instead of = to equate a symbol to an expression.
 
LCOMM::LCOMMType LCOMMDirectiveAlignmentType
Describes if the .lcomm directive for the target supports an alignment argument and how it is interpr...
 
void printExpr(raw_ostream &, const MCExpr &) const
 
bool UsesELFSectionDirectiveForBSS
This is true if this target uses ELF '.section' directive before the '.bss' one.
 
bool SupportsDebugInformation
True if target supports emission of debugging information.
 
unsigned AssemblerDialect
Which dialect of an assembler variant to use. Defaults to 0.
 
bool AlignmentIsInBytes
If this is true (the default) then the asmprinter emits ".align N" directives, where N is the number ...
 
const char * ZeroDirective
This should be set to the directive used to get some number of zero (and non-zero if supported by the...
 
bool IsLittleEndian
True if target is little endian. Default is true.
 
unsigned CodePointerSize
Code pointer size in bytes. Default is 4.
 
unsigned CalleeSaveStackSlotSize
Size of the stack slot reserved for callee-saved registers, in bytes.
 
StringRef CommentString
This indicates the comment string used by the assembler.
 
LLVM_ABI bool evaluateAsRelocatable(MCValue &Res, const MCAssembler *Asm) const
Try to evaluate the expression to a relocatable value, i.e.
 
Extension point for target-specific MCExpr subclasses with a relocation specifier,...
 
const MCExpr * getSubExpr() const
 
Spec getSpecifier() const
 
static MCValue get(const MCSymbol *SymA, const MCSymbol *SymB=nullptr, int64_t Val=0, uint32_t Specifier=0)
 
void setSpecifier(uint32_t S)
 
int64_t getConstant() const
 
bool isAbsolute() const
Is this an absolute (as opposed to relocatable) value.
 
PPCELFMCAsmInfo(bool is64Bit, const Triple &)
 
bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const override
 
void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override
 
bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const override
 
void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override
 
PPCXCOFFMCAsmInfo(bool is64Bit, const Triple &)
 
Triple - Helper class for working with autoconf configuration names.
 
LLVM Value Representation.
 
This class implements an extremely fast bulk output stream that can only output to a stream.
 
bool evaluateAsConstant(const MCSpecifierExpr &Expr, int64_t &Res)
 
This is an optimization pass for GlobalISel generic memory operations.
 
@ DwarfCFI
DWARF-like instruction based exceptions.
 
LLVM_ABI void report_fatal_error(Error Err, bool gen_crash_diag=true)