29#ifndef __ARCH_SPARC_INSTS_BRANCH_HH__
30#define __ARCH_SPARC_INSTS_BRANCH_HH__
65 Branch(mnem, _machInst, __opClass),
disp(_disp)
96 sext<18>((
bits(_machInst, 21, 20) << 16) |
97 (
bits(_machInst, 13, 0) << 2)))
Base class for branch operations with an immediate displacement.
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
BranchDisp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, int32_t _disp)
Base class for branches that use an immediate and a register to compute their displacements.
BranchImm13(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Base class for branches with n bit displacements.
BranchNBits(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
Base class for 16bit split displacements.
BranchSplit(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
Base class for branch operations.
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Base class for all SPARC static instructions.
SparcStaticInst(const char *_mnemonic, ExtMachInst _machInst, OpClass __opClass)
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
constexpr uint64_t szext(uint64_t val)
Sign-extend an N-bit value to 64 bits.
constexpr uint64_t sext(uint64_t val)
Sign-extend an N-bit value to 64 bits.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.