LLVM 20.0.0git
XtensaMCTargetDesc.h
Go to the documentation of this file.
1//===-- XtensaMCTargetDesc.h - Xtensa Target Descriptions -------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
6// See https://llvm.org/LICENSE.txt for license information.
7// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8//
9//===----------------------------------------------------------------------===//
10//
11// This file provides Xtensa specific target descriptions.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_XTENSA_MCTARGETDESC_XTENSAMCTARGETDESC_H
16#define LLVM_LIB_TARGET_XTENSA_MCTARGETDESC_XTENSAMCTARGETDESC_H
18#include <memory>
19
20namespace llvm {
21
22class MCAsmBackend;
23class MCCodeEmitter;
24class MCContext;
25class MCInstrInfo;
26class MCObjectTargetWriter;
27class MCObjectWriter;
28class MCRegisterInfo;
29class MCSubtargetInfo;
30class MCTargetOptions;
31class MachineInstr;
32class StringRef;
33class Target;
34class raw_ostream;
35
37
38MCCodeEmitter *createXtensaMCCodeEmitter(const MCInstrInfo &MCII,
39 MCContext &Ctx);
40
41MCAsmBackend *createXtensaMCAsmBackend(const Target &T,
42 const MCSubtargetInfo &STI,
43 const MCRegisterInfo &MRI,
44 const MCTargetOptions &Options);
45std::unique_ptr<MCObjectTargetWriter>
46createXtensaObjectWriter(uint8_t OSABI, bool IsLittleEndian);
47
48namespace Xtensa {
49// Check address offset for load/store instructions.
50// The offset should be multiple of scale.
51bool isValidAddrOffset(int Scale, int64_t OffsetVal);
52
53// Check address offset for load/store instructions.
54bool isValidAddrOffsetForOpcode(unsigned Opcode, int64_t Offset);
55} // namespace Xtensa
56} // end namespace llvm
57
58// Defines symbolic names for Xtensa registers.
59// This defines a mapping from register name to register number.
60#define GET_REGINFO_ENUM
61#include "XtensaGenRegisterInfo.inc"
62
63// Defines symbolic names for the Xtensa instructions.
64#define GET_INSTRINFO_ENUM
65#include "XtensaGenInstrInfo.inc"
66
67#define GET_SUBTARGETINFO_ENUM
68#include "XtensaGenSubtargetInfo.inc"
69
70#endif // LLVM_LIB_TARGET_XTENSA_MCTARGETDESC_XTENSAMCTARGETDESC_H
unsigned const MachineRegisterInfo * MRI
static LVOptions Options
Definition: LVOptions.cpp:25
bool isValidAddrOffset(int Scale, int64_t OffsetVal)
bool isValidAddrOffsetForOpcode(unsigned Opcode, int64_t Offset)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ Offset
Definition: DWP.cpp:480
std::unique_ptr< MCObjectTargetWriter > createXtensaObjectWriter(uint8_t OSABI, bool IsLittleEndian)
Target TheXtensaTarget
MCCodeEmitter * createXtensaMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackend * createXtensaMCAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)