LLVM 20.0.0git
|
Namespaces | |
namespace | ldi |
Fixups relating to the LDI instruction. | |
Functions | |
static void | signed_width (unsigned Width, uint64_t Value, std::string Description, const MCFixup &Fixup, MCContext *Ctx) |
static void | unsigned_width (unsigned Width, uint64_t Value, std::string Description, const MCFixup &Fixup, MCContext *Ctx) |
static void | adjustBranch (unsigned Size, const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
Adjusts the value of a branch target before fixup application. | |
static void | adjustRelativeBranch (unsigned Size, const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
Adjusts the value of a relative branch target before fixup application. | |
static void | fixup_call (unsigned Size, const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
22-bit absolute fixup. | |
static void | fixup_7_pcrel (unsigned Size, const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
7-bit PC-relative fixup. | |
static void | fixup_13_pcrel (unsigned Size, const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
12-bit PC-relative fixup. | |
static void | fixup_6 (const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
6-bit fixup for the immediate operand of the STD/LDD family of instructions. | |
static void | fixup_6_adiw (const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
6-bit fixup for the immediate operand of the ADIW family of instructions. | |
static void | fixup_port5 (const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
5-bit port number fixup on the SBIC family of instructions. | |
static void | fixup_port6 (const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
6-bit port number fixup on the IN family of instructions. | |
static void | fixup_lds_sts_16 (const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) |
7-bit data space address fixup for the LDS/STS instructions on AVRTiny. | |
static void | pm (uint64_t &Value) |
Adjusts a program memory address. | |
|
static |
Adjusts the value of a branch target before fixup application.
Definition at line 66 of file AVRAsmBackend.cpp.
References llvm::AVR::fixups::adjustBranchTarget(), Fixup, Size, and unsigned_width().
Referenced by fixup_call().
|
static |
Adjusts the value of a relative branch target before fixup application.
Definition at line 77 of file AVRAsmBackend.cpp.
References llvm::AVR::fixups::adjustBranchTarget(), Fixup, llvm::MCContext::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), llvm::isIntN(), signed_width(), and Size.
Referenced by fixup_13_pcrel(), and fixup_7_pcrel().
|
static |
12-bit PC-relative fixup.
Yes, the fixup is 12 bits even though the name says otherwise.
Resolves to: 0000 kkkk kkkk kkkk Offset of 0 (so the result isn't left-shifted before application).
Definition at line 141 of file AVRAsmBackend.cpp.
References adjustRelativeBranch(), Fixup, and Size.
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
6-bit fixup for the immediate operand of the STD/LDD family of instructions.
Resolves to: 10q0 qq10 0000 1qqq
Definition at line 154 of file AVRAsmBackend.cpp.
References Fixup, and unsigned_width().
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
6-bit fixup for the immediate operand of the ADIW family of instructions.
Resolves to: 0000 0000 kk00 kkkk
Definition at line 165 of file AVRAsmBackend.cpp.
References Fixup, and unsigned_width().
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
7-bit PC-relative fixup.
Resolves to: 0000 00kk kkkk k000 Offset of 0 (so the result is left shifted by 3 bits before application).
Definition at line 127 of file AVRAsmBackend.cpp.
References adjustRelativeBranch(), Fixup, and Size.
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
22-bit absolute fixup.
Resolves to: 1001 kkkk 010k kkkk kkkk kkkk 111k kkkk
Offset of 0 (so the result is left shifted by 3 bits before application).
Definition at line 111 of file AVRAsmBackend.cpp.
References adjustBranch(), Fixup, and Size.
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
7-bit data space address fixup for the LDS/STS instructions on AVRTiny.
Resolves to: 1010 ikkk dddd kkkk
Definition at line 198 of file AVRAsmBackend.cpp.
References Fixup, and unsigned_width().
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
5-bit port number fixup on the SBIC family of instructions.
Resolves to: 0000 0000 AAAA A000
Definition at line 176 of file AVRAsmBackend.cpp.
References Fixup, and unsigned_width().
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
6-bit port number fixup on the IN
family of instructions.
Resolves to: 1011 0AAd dddd AAAA
Definition at line 188 of file AVRAsmBackend.cpp.
References Fixup, and unsigned_width().
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
Adjusts a program memory address.
This is a simple right-shift.
Definition at line 206 of file AVRAsmBackend.cpp.
Referenced by llvm::AVRAsmBackend::adjustFixupValue().
|
static |
Definition at line 34 of file AVRAsmBackend.cpp.
References Fixup, llvm::isIntN(), llvm::maxIntN(), llvm::minIntN(), and llvm::MCContext::reportError().
Referenced by adjustRelativeBranch().
|
static |
Definition at line 50 of file AVRAsmBackend.cpp.
References Fixup, llvm::isUIntN(), llvm::maxUIntN(), and llvm::MCContext::reportError().
Referenced by adjustBranch(), llvm::AVRAsmBackend::adjustFixupValue(), fixup_6(), fixup_6_adiw(), fixup_lds_sts_16(), fixup_port5(), and fixup_port6().