LLVM  14.0.0git
CSKYAsmBackend.h
Go to the documentation of this file.
1 //===-- CSKYAsmBackend.h - CSKY Assembler Backend -------------------------===//
2 //
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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYASMBACKEND_H
10 #define LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYASMBACKEND_H
11 
13 #include "llvm/MC/MCAsmBackend.h"
15 
16 namespace llvm {
17 
18 class CSKYAsmBackend : public MCAsmBackend {
19 
20 public:
23 
24  unsigned int getNumFixupKinds() const override {
26  }
27 
28  void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
30  uint64_t Value, bool IsResolved,
31  const MCSubtargetInfo *STI) const override;
32 
33  const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
34 
35  bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value,
36  const MCRelaxableFragment *DF,
37  const MCAsmLayout &Layout) const override;
38 
39  void relaxInstruction(MCInst &Inst,
40  const MCSubtargetInfo &STI) const override;
41 
42  bool writeNopData(raw_ostream &OS, uint64_t Count,
43  const MCSubtargetInfo *STI) const override;
44 
45  std::unique_ptr<MCObjectTargetWriter>
46  createObjectTargetWriter() const override;
47 };
48 } // namespace llvm
49 
50 #endif // LLVM_LIB_TARGET_CSKY_MCTARGETDESC_CSKYASMBACKEND_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AllocatorList.h:23
llvm::MCRelaxableFragment
A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler lay...
Definition: MCFragment.h:271
llvm::CSKYAsmBackend
Definition: CSKYAsmBackend.h:18
MCTargetOptions.h
llvm::Target
Target - Wrapper for Target specific information.
Definition: TargetRegistry.h:137
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:184
llvm::CSKYAsmBackend::getNumFixupKinds
unsigned int getNumFixupKinds() const override
Get the number of target specific fixup kinds.
Definition: CSKYAsmBackend.h:24
llvm::Data
@ Data
Definition: SIMachineScheduler.h:55
llvm::MCAsmBackend
Generic interface to target specific assembler backends.
Definition: MCAsmBackend.h:36
MCAsmBackend.h
llvm::MutableArrayRef< char >
llvm::support::little
@ little
Definition: Endian.h:27
llvm::CSKYAsmBackend::applyFixup
void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef< char > Data, uint64_t Value, bool IsResolved, const MCSubtargetInfo *STI) const override
Apply the Value for given Fixup into the provided data fragment, at the offset specified by the fixup...
Definition: CSKYAsmBackend.cpp:129
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
llvm::lltok::Kind
Kind
Definition: LLToken.h:18
DF
static RegisterPass< DebugifyFunctionPass > DF("debugify-function", "Attach debug info to a function")
llvm::CSKYAsmBackend::CSKYAsmBackend
CSKYAsmBackend(const MCSubtargetInfo &STI, const MCTargetOptions &OP)
Definition: CSKYAsmBackend.h:21
llvm::MCAssembler
Definition: MCAssembler.h:60
uint64_t
llvm::CSKYAsmBackend::writeNopData
bool writeNopData(raw_ostream &OS, uint64_t Count, const MCSubtargetInfo *STI) const override
Write an (optimal) nop sequence of Count bytes to the given output.
Definition: CSKYAsmBackend.cpp:180
llvm::CSKYAsmBackend::createObjectTargetWriter
std::unique_ptr< MCObjectTargetWriter > createObjectTargetWriter() const override
Definition: CSKYAsmBackend.cpp:24
llvm::MCFixupKindInfo
Target independent information on a fixup kind.
Definition: MCFixupKindInfo.h:15
OP
#define OP(n)
Definition: regex2.h:73
llvm::MCTargetOptions
Definition: MCTargetOptions.h:36
llvm::CSKYAsmBackend::relaxInstruction
void relaxInstruction(MCInst &Inst, const MCSubtargetInfo &STI) const override
Relax the instruction in the given fragment to the next wider instruction.
Definition: CSKYAsmBackend.cpp:175
llvm::CSKY::NumTargetFixupKinds
@ NumTargetFixupKinds
Definition: CSKYFixupKinds.h:56
llvm::MCAsmLayout
Encapsulates the layout of an assembly file at a particular point in time.
Definition: MCAsmLayout.h:28
llvm::CSKYAsmBackend::getFixupKindInfo
const MCFixupKindInfo & getFixupKindInfo(MCFixupKind Kind) const override
Get information on a fixup kind.
Definition: CSKYAsmBackend.cpp:29
CSKYFixupKinds.h
llvm::CSKYAsmBackend::fixupNeedsRelaxation
bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const override
Simple predicate for targets where !Resolved implies requiring relaxation.
Definition: CSKYAsmBackend.cpp:169
llvm::MCFixupKind
MCFixupKind
Extensible enumeration to represent the type of a fixup.
Definition: MCFixup.h:21
support
Reimplement select in terms of SEL *We would really like to support but we need to prove that the add doesn t need to overflow between the two bit chunks *Implement pre post increment support(e.g. PR935) *Implement smarter const ant generation for binops with large immediates. A few ARMv6T2 ops should be pattern matched
Definition: README.txt:10
llvm::HexStyle::Asm
@ Asm
0ffh
Definition: MCInstPrinter.h:34
llvm::MCValue
This represents an "assembler immediate".
Definition: MCValue.h:37
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition: MCSubtargetInfo.h:75
llvm::MCFixup
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...
Definition: MCFixup.h:71
llvm::Value
LLVM Value Representation.
Definition: Value.h:74