LLVM 22.0.0git
AVRMCAsmInfo.h
Go to the documentation of this file.
1//===-- AVRMCAsmInfo.h - AVR asm properties ---------------------*- C++ -*-===//
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// This file contains the declaration of the AVRMCAsmInfo class.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_AVR_ASM_INFO_H
14#define LLVM_AVR_ASM_INFO_H
15
18#include "llvm/MC/MCExpr.h"
19
20namespace llvm {
21
22class Triple;
23
24/// Specifies the format of AVR assembly files.
25class AVRMCAsmInfo : public MCAsmInfoELF {
26public:
27 explicit AVRMCAsmInfo(const Triple &TT, const MCTargetOptions &Options);
29 const MCSpecifierExpr &Expr) const override;
31 const MCAssembler *Asm) const override;
32};
33
34namespace AVR {
36enum {
38
40
41 S_HI8, ///< Corresponds to `hi8()`.
42 S_LO8, ///< Corresponds to `lo8()`.
43 S_HH8, ///< Corresponds to `hlo8() and hh8()`.
44 S_HHI8, ///< Corresponds to `hhi8()`.
45
46 S_PM, ///< Corresponds to `pm()`, reference to program memory.
47 S_PM_LO8, ///< Corresponds to `pm_lo8()`.
48 S_PM_HI8, ///< Corresponds to `pm_hi8()`.
49 S_PM_HH8, ///< Corresponds to `pm_hh8()`.
50
51 S_LO8_GS, ///< Corresponds to `lo8(gs())`.
52 S_HI8_GS, ///< Corresponds to `hi8(gs())`.
53 S_GS, ///< Corresponds to `gs()`.
54
58};
59} // namespace AVR
60
61} // end namespace llvm
62
63#endif // LLVM_AVR_ASM_INFO_H
static LVOptions Options
Definition: LVOptions.cpp:25
raw_pwrite_stream & OS
Specifies the format of AVR assembly files.
Definition: AVRMCAsmInfo.h:25
void printSpecifierExpr(raw_ostream &OS, const MCSpecifierExpr &Expr) const override
bool evaluateAsRelocatableImpl(const MCSpecifierExpr &Expr, MCValue &Res, const MCAssembler *Asm) const override
Extension point for target-specific MCExpr subclasses with a relocation specifier,...
Definition: MCExpr.h:495
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:47
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
@ S_LO8
Corresponds to lo8().
Definition: AVRMCAsmInfo.h:42
@ S_LO8_GS
Corresponds to lo8(gs()).
Definition: AVRMCAsmInfo.h:51
@ S_HH8
Corresponds to hlo8() and hh8().
Definition: AVRMCAsmInfo.h:43
@ S_PM_HH8
Corresponds to pm_hh8().
Definition: AVRMCAsmInfo.h:49
@ S_HHI8
Corresponds to hhi8().
Definition: AVRMCAsmInfo.h:44
@ S_PM_LO8
Corresponds to pm_lo8().
Definition: AVRMCAsmInfo.h:47
@ S_PM
Corresponds to pm(), reference to program memory.
Definition: AVRMCAsmInfo.h:46
@ S_GS
Corresponds to gs().
Definition: AVRMCAsmInfo.h:53
@ S_HI8_GS
Corresponds to hi8(gs()).
Definition: AVRMCAsmInfo.h:52
@ S_PM_HI8
Corresponds to pm_hi8().
Definition: AVRMCAsmInfo.h:48
@ S_HI8
Corresponds to hi8().
Definition: AVRMCAsmInfo.h:41
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18