static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value, MCContext &Ctx) {

static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_LO16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_HI16) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


if ( Kind == zmtarzm :: fixup_zmtarzm_hi6 ) {

if (Kind == zmtarzm::fixup_zmtarzm_hi6) {


if ( Kind == zmtarzm :: fixup_zmtarzm_lo10 ) {

if (Kind == zmtarzm::fixup_zmtarzm_lo10) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_10 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_10) {


"fixup value out of range (zmtarzm_pcrel_10"

Ctx.reportError(Fixup.getLoc(), "fixup value out of range (fixup_zmtarzm_pcrel_10");


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_11 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_11) {


"fixup value out of range (cahp_pcrel_11)"

Ctx.reportError(Fixup.getLoc(), "fixup value out of range (fixup_cahp_pcrel_11)");


if ( Kind == zmtarzm :: fixup_comet2_24 ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT_LO16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_24 ) {

if (Kind == zmtarzm::fixup_zmtarzm_24) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC24 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC24) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


return ( ( Value + 0x8000 ) >> 16 ) & 0xffff ;

return ((Value + 0x8000) >> 16) & 0xffff;


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT_Local ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT_Local) {


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT_HI16) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_addr32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_addr32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_imm16_scale2 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_imm16_scale2) {


Ctx
.
reportError
(
Fixup
.
getLoc
(
)
,
"out of range pc-relative fixup value."
)
;

Ctx.reportError(Fixup.getLoc(), "out of range pc-relative fixup value.");


Ctx
.
reportError
(
Fixup
.
getLoc
(
)
,
"fixup value must be 2-byte aligned."
)
;

Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned.");


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_uimm16_scale4 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_uimm16_scale4) {


Ctx
.
reportError
(
Fixup
.
getLoc
(
)
,
"fixup value must be 4-byte aligned."
)
;

Ctx.reportError(Fixup.getLoc(), "fixup value must be 4-byte aligned.");


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_imm26_scale2 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_imm26_scale2) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_imm18_scale2 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_imm18_scale2) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_uimm8_scale4 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_uimm8_scale4) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_imm10_scale2 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_imm10_scale2) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( Kind == zmtarzm :: fixup_zmtarzm_got32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_got32) {


llvm_unreachable("Relocation should be unconditionally forced\n");


if ( Kind == zmtarzm :: fixup_zmtarzm_got_imm18_scale4 ) {

if (Kind == zmtarzm::fixup_zmtarzm_got_imm18_scale4) {


if ( Kind == zmtarzm :: fixup_zmtarzm_gotoff ) {

if (Kind == zmtarzm::fixup_zmtarzm_gotoff) {


if ( Kind == zmtarzm :: fixup_zmtarzm_gotpc ) {

if (Kind == zmtarzm::fixup_zmtarzm_gotpc) {


if ( static_cast < int64_t > ( Value ) > # ) {


if ( static_cast < int64_t > ( Value ) < # ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_plt32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_plt32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_plt_imm18_scale4 ) {

if (Kind == zmtarzm::fixup_zmtarzm_plt_imm18_scale4) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {

static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value, MCContext &Ctx) {


if ( Kind == zmtarzm :: fixup_zmtarzm_21 ) {

if (Kind == zmtarzm::fixup_zmtarzm_21) {


if ( Kind == zmtarzm :: fixup_zmtarzm_21_F ) {

if (Kind == zmtarzm::fixup_zmtarzm_21_F) {


if ( Kind == zmtarzm :: fixup_zmtarzm_25 ) {

if (Kind == zmtarzm::fixup_zmtarzm_25) {


if ( Kind == zmtarzm :: fixup_zmtarzm_32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_HI16) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( Kind == zmtarzm :: fixup_zmtarzm_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_LO16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_q4_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_q4_pcrel) {


return ( ( Value >>= 48 ) & 0xFFFF ) << 5 ;


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_q3_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_q3_pcrel) {


return ( ( Value >>= 32 ) & 0xFFFF ) << 5 ;


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_q2_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_q2_pcrel) {


return ( ( Value >>= 16 ) & 0xFFFF ) << 5 ;


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_q1_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_q1_pcrel) {


if ( Kind == zmtarzm :: fixup_zmtarzm_call26_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_call26_pcrel) {


if ( Kind == zmtarzm :: fixup_zmtarzm_call19_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_call19_pcrel) {


if ( Kind == zmtarzm :: fixup_zmtarzm_9bit_address ) {

if (Kind == zmtarzm::fixup_zmtarzm_9bit_address) {


if ( static_cast < int64_t > ( Value ) > # ) {


if ( static_cast < int64_t > ( Value ) < # ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_6bit_shamt ) {

if (Kind == zmtarzm::fixup_zmtarzm_6bit_shamt) {


if ( Kind == zmtarzm :: fixup_zmtarzm_12bit_imm ) {

if (Kind == zmtarzm::fixup_zmtarzm_12bit_imm) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B7_PCREL ) {

if (Kind == zmtarzm::fixup_zmtarzm_B7_PCREL) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B9_PCREL ) {

if (Kind == zmtarzm::fixup_zmtarzm_B9_PCREL) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B13_PCREL ) {

if (Kind == zmtarzm::fixup_zmtarzm_B13_PCREL) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B15_PCREL ) {

if (Kind == zmtarzm::fixup_zmtarzm_B15_PCREL) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B22_PCREL ) {

if (Kind == zmtarzm::fixup_zmtarzm_B22_PCREL) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B7_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B7_PCREL_X) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B9_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B9_PCREL_X) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B13_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B13_PCREL_X) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B15_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B15_PCREL_X) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B22_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B22_PCREL_X) {


if ( Kind == zmtarzm :: fixup_zmtarzm_B32_PCREL_X ) {

if (Kind == zmtarzm::fixup_zmtarzm_B32_PCREL_X) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value, MCContext &Ctx) {


if ( Kind == zmtarzm :: fixup_zmtarzm_21 ) {

if (Kind == zmtarzm::fixup_zmtarzm_21) {


if ( Kind == zmtarzm :: fixup_zmtarzm_21_F ) {

if (Kind == zmtarzm::fixup_zmtarzm_21_F) {


if ( Kind == zmtarzm :: fixup_zmtarzm_25 ) {

if (Kind == zmtarzm::fixup_zmtarzm_25) {


if ( Kind == zmtarzm :: fixup_zmtarzm_32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_HI16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_LO16) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_hi16_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_hi16_pcrel) {


if ( Kind == zmtarzm :: fixup_zmtarzm_mov_lo16_pcrel ) {

if (Kind == zmtarzm::fixup_zmtarzm_mov_lo16_pcrel) {


if ( Kind == zmtarzm :: fixup_leg_mov_hi16_pcrel ) {

if (Kind == zmtarzm::fixup_leg_mov_hi16_pcrel) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_20 ) {

if (Kind == zmtarzm::fixup_zmtarzm_20) {


if ( Kind == zmtarzm :: fixup_zmtarzm_AUG20 ) {

if (Kind == zmtarzm::fixup_zmtarzm_AUG20) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_COG9 ) {

if (Kind == zmtarzm::fixup_zmtarzm_COG9) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC20 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC20) {


if ( Kind == zmtarzm :: fixup_zmtarzm_nofixup ) {

if (Kind == zmtarzm::fixup_zmtarzm_nofixup) {


if ( Kind == zmtarzm :: fixup_zmtarzm_brcond14 ) {

if (Kind == zmtarzm::fixup_zmtarzm_brcond14) {


if ( Kind == zmtarzm :: fixup_zmtarzm_brcond14abs ) {

if (Kind == zmtarzm::fixup_zmtarzm_brcond14abs) {


if ( Kind == zmtarzm :: fixup_zmtarzm_br24 ) {

if (Kind == zmtarzm::fixup_zmtarzm_br24) {


if ( Kind == zmtarzm :: fixup_zmtarzm_br24abs ) {

if (Kind == zmtarzm::fixup_zmtarzm_br24abs) {


if ( Kind == zmtarzm :: fixup_zmtarzm_half16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_half16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_half16ds ) {

if (Kind == zmtarzm::fixup_zmtarzm_half16ds) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {

static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value, MCContext &Ctx) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_8bit ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_8bit) {


Ctx.reportError(Fixup.getLoc(), "fixup value out of range (signed 8 bits)");


Ctx
.
reportError
(
Fixup
.
getLoc
(
)
,
"fixup value must be 2-byte aligned."
)
;

Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned.");


if ( Kind == zmtarzm :: fixup_zmtarzm_pcrel_16bit ) {

if (Kind == zmtarzm::fixup_zmtarzm_pcrel_16bit) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


Ctx.reportError(Fixup.getLoc(), "fixup value out of range (signed 16 bits)");


if ( Kind == zmtarzm :: fixup_zmtarzm_CALL16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_CALL16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_LO16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT_LO16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT_LO16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC16) {


if ( Kind == zmtarzm :: fixup_zmtarzm_PC24 ) {

if (Kind == zmtarzm::fixup_zmtarzm_PC24) {


if ( Kind == zmtarzm :: fixup_zmtarzm_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_HI16) {


return ( ( Value + 0x8000 ) >> 16 ) & 0xffff ;

return ((Value + 0x8000) >> 16) & 0xffff;


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT) {


if ( Kind == zmtarzm :: fixup_zmtarzm_GOT_HI16 ) {

if (Kind == zmtarzm::fixup_zmtarzm_GOT_HI16) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_lo16_i ) {

if (Kind == zmtarzm::fixup_zmtarzm_lo16_i) {


if ( Kind == zmtarzm :: fixup_zmtarzm_hi16_i ) {

if (Kind == zmtarzm::fixup_zmtarzm_hi16_i) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value, MCContext &Ctx) {


if ( Kind == zmtarzm :: fixup_zmtarzm_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pc_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pc_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_got_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_got_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_gotoff_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_gotoff_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_plt_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_plt_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_tls_gd_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_tls_gd_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_tpoff_hi32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_tpoff_hi32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_reflong ) {

if (Kind == zmtarzm::fixup_zmtarzm_reflong) {


if ( Kind == zmtarzm :: fixup_zmtarzm_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_pc_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_pc_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_got_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_got_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_gotoff_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_gotoff_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_plt_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_plt_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_tls_gd_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_tls_gd_lo32) {


if ( Kind == zmtarzm :: fixup_zmtarzm_tpoff_lo32 ) {

if (Kind == zmtarzm::fixup_zmtarzm_tpoff_lo32) {


if ( static_cast < int64_t > ( Value ) > # ) {


Ctx . reportError ( Fixup . getLoc ( ) , # ) ;


if ( static_cast < int64_t > ( Value ) < # ) {


llvm_unreachable
(
"Unknown fixup kind!"
)
;


static uint64_t adjustFixupValue ( const MCFixup & Fixup , uint64_t Value , MCContext & Ctx ) {


if ( Kind == zmtarzm :: fixup_zmtarzm_jump_target ) {

if (Kind == zmtarzm::fixup_zmtarzm_jump_target) {


if ( Kind == zmtarzm :: fixup_zmtarzm_cond_branch12_target ) {

if (Kind == zmtarzm::fixup_zmtarzm_cond_branch12_target) {


void zmtarzmAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,const MCValue &Target,MutableArrayRef<char> Data, uint64_t Value,bool IsResolved, const MCSubtargetInfo *STI) const {

void zmtarzmAsmBackend :: applyFixup ( const MCAssembler & Asm , const MCFixup & Fixup , const MCValue & Target , MutableArrayRef < char > Data , uint64_t Value , bool IsResolved , const MCSubtargetInfo * STI ) const {


if (Kind >= FirstLiteralRelocationKind) {

if ( Kind >= FirstLiteralRelocationKind ) {


MCContext & Ctx = Asm . getContext ( ) ;


Value = adjustFixupValue ( Fixup , Value , Ctx ) << Info . TargetOffset ;

Value = adjustFixupValue(Fixup, Value, Ctx) << Info.TargetOffset;


NumBytes = getFixupKindNumBytes ( Fixup . getKind ( ) ) ;


assert(Offset + NumBytes <= Data.size() && "Invalid fixup offset!");

assert
(
Offset
+
NumBytes
<=
Data
.
size
(
)
&&
"Invalid fixup offset!"
)
;


if ( MCAsmBackend :: Endian == support :: little ) {

if (MCAsmBackend::Endian == support::little) {


Data [ Offset + i ] = Data [ Offset + i ] | uint8_t ( ( Value >> ( i * 8 ) ) & 0xff ) ;

Data[Offset + i] = Data[Offset + i] | uint8_t((Value >> (i * 8)) & 0xff);


NumBytes = ( Info . TargetSize + Info . TargetOffset + 7 ) / 8 ;

NumBytes = (Info.TargetSize + Info.TargetOffset + 7) / 8;


NumBytes = ( Info . TargetSize + 7 ) / 8 ;


Value = adjustFixupValue ( Fixup , Value , Ctx ) ;

Value = adjustFixupValue(Fixup, Value, Ctx);


if ( MCAsmBackend :: Endian == support :: big ) {

if (MCAsmBackend::Endian == support::big) {


Data [ Offset + i ] = Data [ Offset + i ] | uint8_t ( ( Value >> ( ( NumBytes - i - 1 ) * 8 ) ) & 0xff ) ;

Data[Offset + i] = Data[Offset + i] | uint8_t((Value >> ((NumBytes - i - 1) * 8)) & 0xff);


zmtarzmAsmBackend(const MCSubtargetInfo &STI, uint8_t OSABI, bool Is64Bit, const MCTargetOptions &Options) : MCAsmBackend(support::little), STI(STI), OSABI(OSABI), Is64Bit(Is64Bit), TargetOptions(Options) {

zmtarzmAsmBackend ( const MCSubtargetInfo & STI , uint8_t OSABI , bool Is64Bit , const MCTargetOptions & Options ) : MCAsmBackend ( support :: little ) , STI ( STI ) , OSABI ( OSABI ) , Is64Bit ( Is64Bit ) , TargetOptions ( Options ) {


MCAsmBackend *llvm::createzmtarzmAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) {

MCAsmBackend * llvm :: createzmtarzmAsmBackend ( const Target & T , const MCSubtargetInfo & STI , const MCRegisterInfo & MRI , const MCTargetOptions & Options ) {


const Triple &TT = STI.getTargetTriple();

const Triple & TT = STI . getTargetTriple ( ) ;


uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS());

uint8_t OSABI = MCELFObjectTargetWriter :: getOSABI ( TT . getOS ( ) ) ;


return new zmtarzmAsmBackend(STI, OSABI, TT.isArch64Bit(), Options);

return new zmtarzmAsmBackend ( STI , OSABI , TT . isArch64Bit ( ) , Options ) ;


std::unique_ptr<MCObjectTargetWriter> zmtarzmAsmBackend::createObjectTargetWriter() const {

std :: unique_ptr < MCObjectTargetWriter > zmtarzmAsmBackend :: createObjectTargetWriter ( ) const {


return createzmtarzmELFObjectWriter ( OSABI , Is64Bit ) ;


bool zmtarzmAsmBackend::evaluateTargetFixup(const MCAssembler &Asm, const MCAsmLayout &Layout, const MCFixup &Fixup, const MCFragment *DF, const MCValue &Target, uint64_t &Value, bool &WasForced) {

bool zmtarzmAsmBackend :: evaluateTargetFixup ( const MCAssembler & Asm , const MCAsmLayout & Layout , const MCFixup & Fixup , const MCFragment * DF , const MCValue & Target , uint64_t & Value , bool & WasForced ) {


IsPCRel16 = (Fixup.getKind() == (MCFixupKind)zmtarzm::PCRel16);

IsPCRel16 = ( Fixup . getKind ( ) == ( MCFixupKind ) zmtarzm :: PCRel16 ) ;


Value = getFixupValue(Layout, Fixup, DF, Target, IsPCRel16);

Value = getFixupValue ( Layout , Fixup , DF , Target , IsPCRel16 ) ;


return !WasForced && fitsIntoFixup(Value, IsPCRel16);

return ! WasForced && fitsIntoFixup ( Value , IsPCRel16 ) ;


bool zmtarzmAsmBackend::fixupNeedsRelaxationAdvanced(const MCFixup &Fixup, bool Resolved, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout, const bool WasForced) const {

bool zmtarzmAsmBackend :: fixupNeedsRelaxationAdvanced ( const MCFixup & Fixup , bool Resolved , uint64_t Value , const MCRelaxableFragment * DF , const MCAsmLayout & Layout , const bool WasForced ) const {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_pcrel_imm10_scale2 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_pcrel_imm10_scale2) {


return ! isShiftedInt < 10 , 1 > ( Offset ) ;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_pcrel_imm16_scale2 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_pcrel_imm16_scale2) {


return ! isShiftedInt < 16 , 1 > ( Offset ) ;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_pcrel_imm26_scale2 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_pcrel_imm26_scale2) {


return ! isShiftedInt < 26 , 1 > ( Offset ) ;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_pcrel_uimm7_scale4 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_pcrel_uimm7_scale4) {


return ! isShiftedInt < 8 , 2 > ( Offset ) ;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_thumb_br ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_thumb_br) {


return Offset > 2050 || Offset < - 2044 ;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_thumb_bcc ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_thumb_bcc) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_adr_pcrel_10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_adr_pcrel_10) {


return Offset > 1024 || Offset < 4 || ( Offset - 4 ) & 3 ;

return Offset > 1024 || Offset < 4 || (Offset-4) & 3;


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_thumb_cp ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_thumb_cp) {


bool fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const override {

bool fixupNeedsRelaxation ( const MCFixup & Fixup , uint64_t Value , const MCRelaxableFragment * DF , const MCAsmLayout & Layout ) const override {


const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {

const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {


const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {

const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {


"fixup_zmtarzm_NONE" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_BR16" zmsplit 0 zmsplit 9 zmsplit 0


"fixup_zmtarzm_BR32" zmsplit 0 zmsplit 9 zmsplit 0


"fixup_zmtarzm_BRCC16" zmsplit 6 zmsplit 3 zmsplit 0


"fixup_zmtarzm_BRCC32" zmsplit 6 zmsplit 3 zmsplit 0


"fixup_zmtarzm_BAL16" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_BAL32" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_ABS6" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_ABS9" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_ABS10" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_ABS12" zmsplit 0 zmsplit 6 zmsplit 0


"fixup_zmtarzm_ABS16" zmsplit 0 zmsplit 6 zmsplit 0


"fixup_zmtarzm_SHIFT6" zmsplit 0 zmsplit 3 zmsplit 0


"fixup_zmtarzm_OFF10" zmsplit 0 zmsplit 3 zmsplit 0


if ( Kind >= FirstLiteralRelocationKind ) {

if (Kind >= FirstLiteralRelocationKind) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");

assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos[Kind - FirstTargetFixupKind];

return Infos [ Kind - FirstTargetFixupKind ] ;


{ "fixup_zmtarzm_sopp_br" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_sopp_br" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_sopp_br", 0, 16, MCFixupKindInfo::FKF_IsPCRel },


"fixup_zmtarzm_rodata" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_rodata", 0, 32, MCFixupKindInfo::FKF_IsPCRel }


if (Kind >= FirstLiteralRelocationKind) {


{ "fixup_zmtarzm_pcrel_adr_imm21" , 0 , 32 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_adr_imm21" zmsplit 0 zmsplit 32 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_adr_imm21", 0, 32, PCRelFlagVal },


{ "fixup_zmtarzm_pcrel_adrp_imm21" , 0 , 32 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_adrp_imm21" zmsplit 0 zmsplit 32 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_adrp_imm21", 0, 32, PCRelFlagVal },


"fixup_zmtarzm_add_imm12" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_add_imm12", 10, 12, 0 },


"fixup_zmtarzm_ldst_imm12_scale1" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_ldst_imm12_scale1", 10, 12, 0 },


"fixup_zmtarzm_ldst_imm12_scale2" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_ldst_imm12_scale2", 10, 12, 0 },


"fixup_zmtarzm_ldst_imm12_scale4" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_ldst_imm12_scale4", 10, 12, 0 },


"fixup_zmtarzm_ldst_imm12_scale8" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_ldst_imm12_scale8", 10, 12, 0 },


"fixup_zmtarzm_ldst_imm12_scale16" zmsplit 10 zmsplit 12 zmsplit 0

{ "fixup_zmtarzm_ldst_imm12_scale16", 10, 12, 0 },


{ "fixup_zmtarzm_ldr_pcrel_imm19" , 5 , 19 , PCRelFlagVal } ,

"fixup_zmtarzm_ldr_pcrel_imm19" zmsplit 5 zmsplit 19 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_ldr_pcrel_imm19", 5, 19, PCRelFlagVal },


"fixup_zmtarzm_movw" zmsplit 5 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_pcrel_branch14" , 5 , 14 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_branch14" zmsplit 5 zmsplit 14 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_branch14", 5, 14, PCRelFlagVal },


{ "fixup_zmtarzm_pcrel_branch19" , 5 , 19 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_branch19" zmsplit 5 zmsplit 19 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_branch19", 5, 19, PCRelFlagVal },


{ "fixup_zmtarzm_pcrel_branch26" , 0 , 26 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_branch26" zmsplit 0 zmsplit 26 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_branch26", 0, 26, PCRelFlagVal },


{ "fixup_zmtarzm_pcrel_call26" , 0 , 26 , PCRelFlagVal } ,

"fixup_zmtarzm_pcrel_call26" zmsplit 0 zmsplit 26 zmsplit PCRelFlagVal

{ "fixup_zmtarzm_pcrel_call26", 0, 26, PCRelFlagVal },


"fixup_zmtarzm_tlsdesc_call" zmsplit 0 zmsplit 0 zmsplit 0

{ "fixup_zmtarzm_tlsdesc_call", 0, 0, 0 }


assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_7_pcrel" , 3 , 7 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_7_pcrel" zmsplit 3 zmsplit 7 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_7_pcrel", 3, 7, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_13_pcrel" , 0 , 12 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_13_pcrel" zmsplit 0 zmsplit 12 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_13_pcrel", 0, 12, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_16_pm" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_lo8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hi8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hi8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hh8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hh8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_call" zmsplit 0 zmsplit 22 zmsplit 0


"fixup_zmtarzm_6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_6_adiw" zmsplit 0 zmsplit 6 zmsplit 0


"fixup_zmtarzm_lo8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_lo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hi8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hlo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_diff8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_diff16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_diff32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_lds_sts_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port5" zmsplit 3 zmsplit 5 zmsplit 0


const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {


const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {


"fixup_zmtarzm_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_PC16" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC16", 0, 16, MCFixupKindInfo::FKF_IsPCRel}


if ( Kind >= FirstLiteralRelocationKind ) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;


"Not all fixup kinds added to Infos array"


return Infos [ Kind - FirstTargetFixupKind ] ;


"fixup_zmtarzm_NONE" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_16" zmsplit  0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_REL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_24" zmsplit 0 zmsplit 24 zmsplit 0


"fixup_zmtarzm_GPREL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LITERAL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_Global" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_Local" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_PC16" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

{"fixup_zmtarzm_PC16", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_PC24" , 0 , 24 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC24" zmsplit 0 zmsplit 24 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC24", 0, 24, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_CALL24" zmsplit 0 zmsplit 24 zmsplit 0


"fixup_zmtarzm_GPREL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_SHIFT5" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_SHIFT6" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_64" zmsplit 0 zmsplit 64 zmsplit 0


"fixup_zmtarzm_TLSGD" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOTTPREL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_HI" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_LO" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TLSLDM" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_DTPREL_HI" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_DTPREL_LO" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_Branch_PCRel" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_Branch_PCRel" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_Branch_PCRel", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_GOT_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_LO16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_NONE" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_21" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_21_F" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_25" zmsplit 7 zmsplit 25 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 16 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_mov_q1_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_q1_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_q1_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_q2_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_q2_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_q2_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_q3_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_q3_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_q3_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_q4_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_q4_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_q4_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_call26_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_call26_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_call26_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_call19_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_call19_pcrel" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_call19_pcrel", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_9bit_address" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_9bit_address" zmsplit 0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_9bit_address", 0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_6bit_shamt" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_6bit_shamt" zmsplit   0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_6bit_shamt",   0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_12bit_imm" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_12bit_imm" zmsplit    0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_12bit_imm",    0, 64, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_movrz_pcrel" , 0 , 64 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_movrz_pcrel" zmsplit  0 zmsplit 64 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_movrz_pcrel",  0, 64, MCFixupKindInfo::FKF_IsPCRel },


if ( Kind >= FirstLiteralRelocationKind ) {

if (Kind >= FirstLiteralRelocationKind) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;

assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos [ Kind - FirstTargetFixupKind ] ;

return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {

const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {

const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


{ "fixup_zmtarzm_B22_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B22_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B22_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B15_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B15_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B15_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B7_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B7_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B7_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_LO16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_8" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GPREL16_0" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GPREL16_1" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GPREL16_2" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GPREL16_3" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_HL16" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_B13_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B13_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B13_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B9_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B9_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B9_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B32_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B32_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B32_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_B22_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B22_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B22_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B15_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B15_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B15_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B13_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B13_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B13_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B9_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B9_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B9_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_B7_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_B7_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_B7_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_12_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_11_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_10_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_9_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_8_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_7_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_6_X" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_32_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_32_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_32_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_COPY" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GLOB_DAT" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_JMP_SLOT" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_RELATIVE" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_PLT_B22_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PLT_B22_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PLT_B22_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_GOTREL_LO16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GOTREL_LO16", 0, 32, 0},


"fixup_zmtarzm_GOTREL_HI16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GOTREL_HI16", 0, 32, 0},


"fixup_zmtarzm_GOTREL_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_LO16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_HI16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_DTPMOD_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_DTPREL_LO16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_DTPREL_LO16", 0, 32, 0},


"fixup_zmtarzm_DTPREL_HI16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_DTPREL_HI16", 0, 32, 0},


"fixup_zmtarzm_DTPREL_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_DTPREL_16" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_GD_PLT_B22_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_GD_PLT_B22_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_GD_PLT_B22_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_LD_PLT_B22_PCREL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_LD_PLT_B22_PCREL" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_LD_PLT_B22_PCREL", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_GD_GOT_LO16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GD_GOT_LO16", 0, 32, 0},


"fixup_zmtarzm_GD_GOT_HI16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GD_GOT_HI16", 0, 32, 0},


"fixup_zmtarzm_GD_GOT_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GD_GOT_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_LD_GOT_LO16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_LD_GOT_LO16", 0, 32, 0},


"fixup_zmtarzm_LD_GOT_HI16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_LD_GOT_HI16", 0, 32, 0},


"fixup_zmtarzm_LD_GOT_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_LD_GOT_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_LO16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_HI16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_GOT_LO16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_IE_GOT_LO16", 0, 32, 0},


"fixup_zmtarzm_IE_GOT_HI16" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_IE_GOT_HI16", 0, 32, 0},


"fixup_zmtarzm_IE_GOT_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_GOT_16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_LO16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_HI16" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_16" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_6_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_6_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_6_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_GOTREL_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOTREL_16_X" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GOTREL_16_X", 0, 32, 0},


"fixup_zmtarzm_GOTREL_11_X" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_GOTREL_11_X", 0, 32, 0},


"fixup_zmtarzm_GOT_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GOT_11_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_DTPREL_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_DTPREL_16_X" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_DTPREL_16_X", 0, 32, 0},


"fixup_zmtarzm_DTPREL_11_X" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_DTPREL_11_X", 0, 32, 0},


"fixup_zmtarzm_GD_GOT_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GD_GOT_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_GD_GOT_11_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_LD_GOT_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_LD_GOT_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_LD_GOT_11_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_GOT_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_GOT_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IE_GOT_11_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_32_6_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_16_X" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_TPREL_11_X" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_GD_PLT_B22_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_GD_PLT_B22_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_GD_PLT_B22_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_GD_PLT_B32_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_GD_PLT_B32_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_GD_PLT_B32_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_LD_PLT_B22_PCREL_X" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_LD_PLT_B22_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_LD_PLT_B22_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_LD_PLT_B32_PCREL_X" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_LD_PLT_B32_PCREL_X", 0, 32, MCFixupKindInfo::FKF_IsPCRel}


if ( Kind >= FirstLiteralRelocationKind ) {

if (Kind >= FirstLiteralRelocationKind) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;

assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos [ Kind - FirstTargetFixupKind ] ;

return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {

const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {

const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


"fixup_zmtarzm_NONE" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_21" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_21_F" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_25" zmsplit 7 zmsplit 25 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 16 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 16 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_mov_hi16_pcrel" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_hi16_pcrel" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_hi16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_lo16_pcrel" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_lo16_pcrel" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_lo16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_7_pcrel" , 3 , 7 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_7_pcrel" zmsplit 3 zmsplit 7 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_7_pcrel", 3, 7, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_13_pcrel" , 0 , 12 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_13_pcrel" zmsplit 0 zmsplit 12 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_13_pcrel", 0, 12, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_16_pm" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_lo8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hi8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hi8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hh8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hh8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_call" zmsplit 0 zmsplit 22 zmsplit 0


"fixup_zmtarzm_6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_6_adiw" zmsplit 0 zmsplit 6 zmsplit 0


"fixup_zmtarzm_lo8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_lo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hi8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hlo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_diff8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_diff16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_diff32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_lds_sts_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port5" zmsplit 3 zmsplit 5 zmsplit 0


"fixup_zmtarzm_NONE" zmsplit 0 zmsplit 0 zmsplit 0


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_REL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_26" zmsplit 0 zmsplit 26 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GPREL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LITERAL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT16" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_PC16" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC16" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC16", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_CALL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GPREL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_SHIFT5" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_SHIFT6" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_64" zmsplit 0 zmsplit 64 zmsplit 0


"fixup_zmtarzm_TLSGD" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOTTPREL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_HI" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_LO" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_Branch_PCRel" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_Branch_PCRel", 0, 16, MCFixupKindInfo::FKF_IsPCRel}


{ "fixup_zmtarzm_rel_16" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_rel_16" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_rel_16", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_rel_24" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_rel_24" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_rel_24", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_h" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_mh" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_ml" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_l" zmsplit 0 zmsplit 16 zmsplit 0


if (Kind >= FirstLiteralRelocationKind) {


assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_10_pcrel" , 0 , 10 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_10_pcrel" zmsplit 0 zmsplit 10 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_10_pcrel", 0, 10, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_16_pcrel" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_16_pcrel" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_16_pcrel", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16_byte" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_16_pcrel_byte" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_16_pcrel_byte" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_16_pcrel_byte", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_2x_pcrel" , 0 , 10 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_2x_pcrel" zmsplit 0 zmsplit 10 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_2x_pcrel", 0, 10, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_rl_pcrel" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_rl_pcrel" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_rl_pcrel", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_sym_diff" zmsplit 0 zmsplit 32 zmsplit 0


if ( Kind >= FirstLiteralRelocationKind ) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;


"Not all fixup kinds added to Infos array"


return Infos [ Kind - FirstTargetFixupKind ] ;


const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {


const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {


{ "fixup_zmtarzm_Branch20" , 5 , 20 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_Branch20" zmsplit 5 zmsplit 20 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_Branch20", 5, 20, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_Branch25" , 0 , 25 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_Branch25" zmsplit 0 zmsplit 25 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_Branch25", 0, 25, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_HI19" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_IMM_LO13" zmsplit 10 zmsplit 13 zmsplit 0


"fixup_zmtarzm_GOT" zmsplit 10 zmsplit 15 zmsplit 0


{ "fixup_zmtarzm_PC32" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC32" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC32", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_20" zmsplit 0 zmsplit 20 zmsplit 0


{ "fixup_zmtarzm_PC20" , 0 , 20 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC20" zmsplit 0 zmsplit 20 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC20", 0, 20, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_AUG20" zmsplit 0 zmsplit 20 zmsplit 0


"fixup_zmtarzm_COG9" zmsplit 0 zmsplit 9 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GPREL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_PC16" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC16" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC16", 0, 16, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_PC24" , 0 , 24 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC24" zmsplit 0 zmsplit 24 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC24", 0, 24, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_CALL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_LO16" zmsplit 0 zmsplit 16 zmsplit 0


if (Kind >= FirstLiteralRelocationKind) {


assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


{ "fixup_zmtarzm_7_pcrel" , 3 , 7 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_7_pcrel" zmsplit 3 zmsplit 7 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_7_pcrel", 3, 7, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_13_pcrel" , 0 , 12 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_13_pcrel" zmsplit 0 zmsplit 12 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_13_pcrel", 0, 12, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_16_pm" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_ms8_ldi_neg" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hh8_ldi_pm" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_lo8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_lo8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hi8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hi8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_hh8_ldi_pm_neg" zmsplit 0 zmsplit 8 zmsplit 0

{"fixup_zmtarzm_hh8_ldi_pm_neg", 0, 8, 0},


"fixup_zmtarzm_call" zmsplit 0 zmsplit 22 zmsplit 0


"fixup_zmtarzm_6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_6_adiw" zmsplit 0 zmsplit 6 zmsplit 0


"fixup_zmtarzm_lo8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_hi8_ldi_gs" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_lo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hi8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_8_hlo8" zmsplit 0 zmsplit 8 zmsplit 0


"fixup_zmtarzm_sym_diff" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_16_ldst" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_lds_sts_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port6" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_port5" zmsplit 3 zmsplit 5 zmsplit 0


{ "fixup_zmtarzm_PC16DBL" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC16DBL" zmsplit  0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_PC16DBL",  0, 16, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_PC32DBL" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC32DBL" zmsplit  0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_PC32DBL",  0, 32, MCFixupKindInfo::FKF_IsPCRel },


"fixup_zmtarzm_TLS_CALL" zmsplit 0 zmsplit 0 zmsplit 0


if ( Kind >= FirstLiteralRelocationKind ) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;


"Not all fixup kinds added to Infos array"


return Infos [ Kind - FirstTargetFixupKind ] ;


const MCFixupKindInfo & zmtarzmAsmBackend :: getFixupKindInfo ( MCFixupKind Kind ) const {


const static MCFixupKindInfo Infos [ zmtarzm :: NumTargetFixupKinds ] = {


{ "fixup_zmtarzm_CALL" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_CALL" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_CALL", 0, 16, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_BR" , 0 , 16 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_BR" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_BR", 0, 16, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_hi16_pcrel" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_hi16_pcrel" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_hi16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel },


{ "fixup_zmtarzm_mov_lo16_pcrel" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_mov_lo16_pcrel" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{ "fixup_zmtarzm_mov_lo16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel },


"fixup_zmtarzm_call" zmsplit 0 zmsplit 24 zmsplit 0


if (Kind >= FirstLiteralRelocationKind) {


assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos[Kind - FirstTargetFixupKind];


const MCFixupKindInfo & zmtarzmAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {


const static MCFixupKindInfo Infos[zmtarzm::NumTargetFixupKinds] = {


{"fixup_zmtarzm_mov_hi16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{"fixup_zmtarzm_mov_lo16_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_reflong" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_hi32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_lo32" zmsplit 0 zmsplit 32 zmsplit 0


{ "fixup_zmtarzm_pc_hi32" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_pc_hi32" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_pc_hi32", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_pc_lo32" , 0 , 32 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_pc_lo32" zmsplit 0 zmsplit 32 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_pc_lo32", 0, 32, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_got_hi32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_got_lo32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_gotoff_hi32" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_gotoff_hi32", 0, 32, 0},


"fixup_zmtarzm_gotoff_lo32" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_gotoff_lo32", 0, 32, 0},


"fixup_zmtarzm_plt_hi32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_plt_lo32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_tls_gd_hi32" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_tls_gd_hi32", 0, 32, 0},


"fixup_zmtarzm_tls_gd_lo32" zmsplit 0 zmsplit 32 zmsplit 0

{"fixup_zmtarzm_tls_gd_lo32", 0, 32, 0},


"fixup_zmtarzm_tpoff_hi32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_tpoff_lo32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_REL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_24" zmsplit 0 zmsplit 24 zmsplit 0


"fixup_zmtarzm_HI16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LO16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GPREL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_LITERAL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_Global" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOT_Local" zmsplit 0 zmsplit 16 zmsplit 0


{ "fixup_zmtarzm_PC24" , 0 , 24 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_PC24" zmsplit 0 zmsplit 24 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_PC24", 0, 24, MCFixupKindInfo::FKF_IsPCRel},


"fixup_zmtarzm_CALL16" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GPREL32" zmsplit 0 zmsplit 32 zmsplit 0


"fixup_zmtarzm_SHIFT5" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_SHIFT6" zmsplit 6 zmsplit 5 zmsplit 0


"fixup_zmtarzm_64" zmsplit 0 zmsplit 64 zmsplit 0


"fixup_zmtarzm_TLSGD" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_GOTTPREL" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_HI" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TPREL_LO" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_TLSLDM" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_DTPREL_HI" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_DTPREL_LO" zmsplit 0 zmsplit 16 zmsplit 0


"fixup_zmtarzm_Branch_PCRel" zmsplit 0 zmsplit 16 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_Branch_PCRel", 0, 16, MCFixupKindInfo::FKF_IsPCRel}


"fixup_zmatzrm_sleb128_i32" zmsplit 0 zmsplit 40 zmsplit 0


"fixup_zmatzrm_sleb128_i64" zmsplit 0 zmsplit 80 zmsplit 0


"fixup_zmatzrm_uleb128_i32" zmsplit 0 zmsplit 40 zmsplit 0


"fixup_zmtarzm_ldst_imm4_scale2" zmsplit 12 zmsplit 4 zmsplit 0

{"fixup_zmtarzm_ldst_imm4_scale2", 12, 4, 0},


{ "fixup_zmtarzm_jump_target" , 6 , 18 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_jump_target" zmsplit 6 zmsplit 18 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_jump_target", 6, 18, MCFixupKindInfo::FKF_IsPCRel},


{ "fixup_zmtarzm_cond_branch12_target" , 12 , 12 , MCFixupKindInfo :: FKF_IsPCRel } ,

"fixup_zmtarzm_cond_branch12_target" zmsplit 12 zmsplit 12 zmsplit MCFixupKindInfo::FKF_IsPCRel

{"fixup_zmtarzm_cond_branch12_target", 12, 12, MCFixupKindInfo::FKF_IsPCRel},


if ( Kind >= FirstLiteralRelocationKind ) {

if (Kind >= FirstLiteralRelocationKind) {


return MCAsmBackend :: getFixupKindInfo ( FK_NONE ) ;


return MCAsmBackend :: getFixupKindInfo ( Kind ) ;


assert
(
unsigned
(
Kind
FirstTargetFixupKind
)
<
getNumFixupKinds
(
)
&&
"Invalid kind!"
)
;

assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!");


static_assert((array_lengthof(Infos)) == zmtarzm::NumTargetFixupKinds, "Not all fixup kinds added to Infos array");


return Infos [ Kind - FirstTargetFixupKind ] ;

return Infos[Kind - FirstTargetFixupKind];


Optional<MCFixupKind> zmtarzmAsmBackend::getFixupKind(StringRef Name) const {

Optional < MCFixupKind > zmtarzmAsmBackend :: getFixupKind ( StringRef Name ) const {


if ( STI . getTargetTriple ( ) . isOSBinFormatELF ( ) ) {


Type = llvm :: StringSwitch < unsigned > ( Name )


# define ELF_RELOC ( X , Y ) . Case ( # X , Y )


. Case ( "BFD_RELOC_NONE" , ELF :: R_zmtarzm_NONE )


. Case ( "BFD_RELOC_16" , ELF :: R_zmtarzm_ABS16 )


. Case ( "BFD_RELOC_32" , ELF :: R_zmtarzm_ABS32 )


. Case ( "BFD_RELOC_64" , ELF :: R_zmtarzm_ABS64 )


return static_cast<MCFixupKind>(FirstLiteralRelocationKind + Type);

return static_cast < MCFixupKind > ( FirstLiteralRelocationKind + Type ) ;


unsigned getNumFixupKinds() const override {

unsigned getNumFixupKinds ( ) const override {


unsigned zmtarzmAsmBackend::getRelaxedOpcode(unsigned Op) const {

unsigned zmtarzmAsmBackend :: getRelaxedOpcode ( unsigned Op ) const {


zmtarzmABI :: ABI getTargetABI ( ) const {


const MCTargetOptions &getTargetOptions() const {

const MCTargetOptions & getTargetOptions ( ) const {


bool zmtarzmAsmBackend::mayNeedRelaxation(const MCInst &Inst, const MCSubtargetInfo &STI) const {

bool zmtarzmAsmBackend :: mayNeedRelaxation ( const MCInst & Inst , const MCSubtargetInfo & STI ) const {


if ( Inst . getOpcode ( ) == zmtarzm :: tBcc ) {


if ( Inst . getOpcode ( ) == zmtarzm :: tLDRpciASM ) {

if(Inst.getOpcode() == zmtarzm::tLDRpciASM) {


if ( Inst . getOpcode ( ) == zmtarzm :: tADR ) {


if ( Inst . getOpcode ( ) == zmtarzm :: tB ) {


if ( Inst . getOpcode ( ) == zmtarzm :: tCBZ ) {


if ( Inst . getOpcode ( ) == zmtarzm :: tCBNZ ) {

if(Inst.getOpcode() == zmtarzm::tCBNZ) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBR32 ) {

if(Inst.getOpcode() == zmtarzm::JBR32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBT32 ) {

if(Inst.getOpcode() == zmtarzm::JBT32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBF32 ) {

if(Inst.getOpcode() == zmtarzm::JBF32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBSR32 ) {

if(Inst.getOpcode() == zmtarzm::JBSR32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBR16 ) {

if(Inst.getOpcode() == zmtarzm::JBR16) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBT16 ) {

if(Inst.getOpcode() == zmtarzm::JBT16) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBF16 ) {

if(Inst.getOpcode() == zmtarzm::JBF16) {


if ( Inst . getOpcode ( ) == zmtarzm :: LRW16 ) {

if(Inst.getOpcode() == zmtarzm::LRW16) {


if ( Inst . getOpcode ( ) == zmtarzm :: BR16 ) {


void zmtarzmAsmBackend::relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI, MCInst &Res) const {

void zmtarzmAsmBackend :: relaxInstruction ( const MCInst & Inst , const MCSubtargetInfo & STI , MCInst & Res ) const {


if ( Inst . getOpcode ( ) == zmtarzm :: S_BRANCH_gfx10 ) {

if (Inst.getOpcode() == zmtarzm::S_BRANCH_gfx10) {


Res . setOpcode ( zmtarzm :: S_BRANCH_pad_s_nop_gfx10 ) ;


Res . addOperand ( Inst . getOperand ( 0 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_BRANCH_gfx6_gfx7 ) {

if (Inst.getOpcode() == zmtarzm::S_BRANCH_gfx6_gfx7) {


Res . setOpcode ( zmtarzm :: S_BRANCH_pad_s_nop_gfx6_gfx7 ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_BRANCH_vi ) {

if (Inst.getOpcode() == zmtarzm::S_BRANCH_vi) {


Res . setOpcode ( zmtarzm :: S_BRANCH_pad_s_nop_vi ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGSYS_AND_USER_gfx10 ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGSYS_AND_USER_gfx10) {


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGSYS_AND_USER_gfx6_gfx7 ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGSYS_AND_USER_gfx6_gfx7) {


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGSYS_gfx10 ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGSYS_gfx10) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_CDBGSYS_pad_s_nop_gfx10 ) ;


Res . addOperand ( Inst . getOperand ( # ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGSYS_gfx6_gfx7 ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGSYS_gfx6_gfx7) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_CDBGSYS_pad_s_nop_gfx6_gfx7 ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGUSER_gfx10 ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGUSER_gfx10) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_CDBGUSER_pad_s_nop_gfx10 ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_CDBGUSER_vi ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_CDBGUSER_vi) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_CDBGUSER_pad_s_nop_vi ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_EXECNZ_vi ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_EXECNZ_vi) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_EXECNZ_pad_s_nop_vi ) ;


Res . addOperand ( Inst . getOperand ( 0 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_SCC0_vi ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_SCC0_vi) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_SCC0_pad_s_nop_vi ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_SCC1_vi ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_SCC1_vi) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_SCC1_pad_s_nop_vi ) ;


Res . addOperand ( MCOperand :: createImm ( # ) ) ;


Res . addOperand ( MCOperand :: createReg ( # ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: S_CBRANCH_VCCNZ_vi ) {

if (Inst.getOpcode() == zmtarzm::S_CBRANCH_VCCNZ_vi) {


Res . setOpcode ( zmtarzm :: S_CBRANCH_VCCNZ_pad_s_nop_vi ) ;


if ( ! STI . getFeatureBits ( ) [ # ] ) {


Res . addOperand ( Inst . getOperand ( # ) ) ;


llvm_unreachable
(
"Opcode not expected!"
)
;


void zmtarzmAsmBackend :: relaxInstruction ( const MCInst & Inst , const MCSubtargetInfo & STI , MCInst & Res ) const {


if ( Inst . getOpcode ( ) == zmtarzm :: tBcc ) {

if (Inst.getOpcode() == zmtarzm::tBcc) {


if ( Inst . getOpcode ( ) == zmtarzm :: tLDRpci ) {

if (Inst.getOpcode() == zmtarzm::tLDRpci) {


Res . setOpcode ( zmtarzm :: t2LDRpci ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: tADR ) {

if (Inst.getOpcode() == zmtarzm::tADR) {


Res . addOperand ( Inst . getOperand ( 0 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: tB ) {


if ( Inst . getOpcode ( ) == zmtarzm :: tCBZ ) {

if (Inst.getOpcode() == zmtarzm::tCBZ) {


Res . addOperand ( MCOperand :: createImm ( 0 ) ) ;


Res . addOperand ( MCOperand :: createImm ( 14 ) ) ;


Res . addOperand ( MCOperand :: createReg ( 0 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: tCBNZ ) {

if (Inst.getOpcode() == zmtarzm::tCBNZ) {


void zmtarzmAsmBackend::relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI, MCInst &Res) const {


if ( Inst . getOpcode ( ) == zmtarzm :: LRW16 ) {

if (Inst.getOpcode() == zmtarzm::LRW16) {


Res . addOperand ( Inst . getOperand ( 1 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: BR16 ) {

if (Inst.getOpcode() == zmtarzm::BR16) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBSR32 ) {

if (Inst.getOpcode() == zmtarzm::JBSR32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBR32 ) {

if (Inst.getOpcode() == zmtarzm::JBR32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBT32 ) {

if (Inst.getOpcode() == zmtarzm::JBT32) {


Res . addOperand ( Inst . getOperand ( # ) ) ;


Res . addOperand ( Inst . getOperand ( 2 ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: JBF32 ) {

if (Inst.getOpcode() == zmtarzm::JBF32) {


if ( Inst . getOpcode ( ) == zmtarzm :: JBR16 ) {

if (Inst.getOpcode() == zmtarzm::JBR16) {


Res . addOperand ( Inst . getOperand ( 0 ) ) ;


Res . addOperand ( MCOperand :: createImm ( # ) ) ;


Res . addOperand ( MCOperand :: createReg ( # ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: JBT16 ) {

if (Inst.getOpcode() == zmtarzm::JBT16) {


if ( STI . getFeatureBits ( ) [ zmtarzm :: HasE2 ] ) {


if ( ! STI . getFeatureBits ( ) [ zmtarzm :: HasE2 ] ) {


llvm_unreachable
(
"Opcode not expected!"
)
;


void zmtarzmAsmBackend :: relaxInstruction ( const MCInst & Inst , const MCSubtargetInfo & STI , MCInst & Res ) const {


if ( Inst . getOpcode ( ) == zmtarzm :: JCC_1 ) {

if (Inst.getOpcode() == zmtarzm::JCC_1) {


if ( Inst . getOpcode ( ) == zmtarzm :: JMP_1 ) {

if (Inst.getOpcode() == zmtarzm::JMP_1) {


if ( Inst . getOpcode ( ) == zmtarzm :: IMUL16rri8 ) {

if (Inst.getOpcode() == zmtarzm::IMUL16rri8) {


Res . setOpcode ( zmtarzm :: IMUL16rri ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: AND64ri8 ) {

if (Inst.getOpcode() == zmtarzm::AND64ri8) {


Res . setOpcode ( zmtarzm :: AND64ri ) ;


Res . addOperand ( Inst . getOperand ( # ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: ADC32mi8 ) {

if (Inst.getOpcode() == zmtarzm::ADC32mi8) {


Res . setOpcode ( zmtarzm :: ADC32mi ) ;


Res . addOperand ( Inst . getOperand ( 0 ) ) ;


Res . addOperand ( MCOperand :: createImm ( # ) ) ;


Res . addOperand ( MCOperand :: createReg ( # ) ) ;


if ( Inst . getOpcode ( ) == zmtarzm :: PUSH64i8 ) {

if (Inst.getOpcode() == zmtarzm::PUSH64i8) {


Res . setOpcode ( zmtarzm :: PUSH64i32 ) ;


if ( ! STI . getFeatureBits ( ) [ # ] ) {


llvm_unreachable
(
"Opcode not expected!"
)
;


bool requiresDiffExpressionRelocations() const override {

bool requiresDiffExpressionRelocations ( ) const override {


return STI . getFeatureBits ( ) [ zmtarzm :: FeatureXNACK ] ;


return STI . getFeatureBits ( ) [ zmtarzm :: HasV4TOps ] ;


return STI . getFeatureBits ( ) [ zmtarzm :: Mode64Bit ] ;


bool zmtarzmAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target) {

bool zmtarzmAsmBackend :: shouldForceRelocation ( const MCAssembler & Asm , const MCFixup & Fixup , const MCValue & Target ) {


if (Fixup.getTargetKind() >= FirstLiteralRelocationKind) {

if ( Fixup . getTargetKind ( ) >= FirstLiteralRelocationKind ) {


if ( Target . getSymA ( ) -> getSymbol ( ) . isTemporary ( ) ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_pcrel_adrp_imm21 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_pcrel_adrp_imm21) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_7_pcrel ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_7_pcrel) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_13_pcrel ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_13_pcrel) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_call ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_call) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_got32 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_got32) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_got_imm18_scale4 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_got_imm18_scale4) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_gotoff ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_gotoff) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_gotpc ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_gotpc) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_plt32 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_plt32) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_plt_imm18_scale4 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_plt_imm18_scale4) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_doffset_imm18 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_doffset_imm18) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_doffset_imm18_scale2 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_doffset_imm18_scale2) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_doffset_imm18_scale4 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_doffset_imm18_scale4) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_DISP16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_DISP16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_DISP26 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_DISP26) {


bool zmtarzmAsmBackend :: shouldForceRelocation ( const MCAssembler & Asm , const MCFixup & Fixup , const MCValue & Target ) {

bool zmtarzmAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target) {


if ( Fixup . getTargetKind ( ) >= FirstLiteralRelocationKind ) {

if (Fixup.getTargetKind() >= FirstLiteralRelocationKind) {


if ( Target . getSymA ( ) -> getSymbol ( ) . isTemporary ( ) ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_7_pcrel ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_13_pcrel ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_call ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_CALL_HI16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_CALL_HI16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_CALL_LO16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_CALL_LO16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_CALL16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_CALL16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT_PAGE ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT_PAGE) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT_OFST ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT_OFST) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT_DISP ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT_DISP) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT_HI16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT_HI16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT_LO16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT_LO16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOTTPREL ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOTTPREL) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_DTPREL_HI ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_DTPREL_HI) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_DTPREL_LO ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_DTPREL_LO) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLSGD ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLSGD) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLSLDM ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLSLDM) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TPREL_HI ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TPREL_HI) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TPREL_LO ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TPREL_LO) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_GOT16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_GOT16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_DTPREL_HI16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_DTPREL_HI16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_DTPREL_LO16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_DTPREL_LO16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_GD ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_GD) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_LDM ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_LDM) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_TPREL_HI16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_TPREL_HI16) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_TLS_TPREL_LO16 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_TLS_TPREL_LO16) {


bool zmtarzmAsmBackend :: shouldForceRelocation ( const MCAssembler & Asm , const MCFixup & Fixup , const MCValue & Target ) {

bool zmtarzmAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target) {


if ( Fixup . getTargetKind ( ) >= FirstLiteralRelocationKind ) {

if (Fixup.getTargetKind() >= FirstLiteralRelocationKind) {


if ( Target . getSymA ( ) -> getSymbol ( ) . isTemporary ( ) ) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_NONE ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_NONE) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_wplt30 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_wplt30) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_gd_hi22 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_gd_hi22) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_gd_lo10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_gd_lo10) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_gd_add ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_gd_add) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_gd_call ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_gd_call) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldm_hi22 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldm_hi22) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldm_lo10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldm_lo10) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldm_add ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldm_add) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldm_call ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldm_call) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldo_hix22 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldo_hix22) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldo_lox10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldo_lox10) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ldo_add ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ldo_add) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ie_hi22 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ie_hi22) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ie_lo10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ie_lo10) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ie_ld ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ie_ld) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ie_ldx ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ie_ldx) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_ie_add ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_ie_add) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_le_hix22 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_le_hix22) {


if ( Fixup . getTargetKind ( ) == zmtarzm :: fixup_zmtarzm_tls_le_lox10 ) {

if (Fixup.getTargetKind() == zmtarzm::fixup_zmtarzm_tls_le_lox10) {


bool zmtarzmAsmBackend::shouldInsertExtraNopBytesForCodeAlign(MCAssembler &Asm, const MCAsmLayout &Layout, MCAlignFragment &AF) {

bool zmtarzmAsmBackend :: shouldInsertExtraNopBytesForCodeAlign ( MCAssembler & Asm , const MCAsmLayout & Layout , MCAlignFragment & AF ) {


bool zmtarzmAsmBackend::shouldInsertFixupForCodeAlign(MCAssembler &Asm, const MCAsmLayout &Layout, MCAlignFragment &AF) {

bool zmtarzmAsmBackend :: shouldInsertFixupForCodeAlign ( MCAssembler & Asm , const MCAsmLayout & Layout , MCAlignFragment & AF ) {


return STI . getFeatureBits ( ) [ zmtarzm :: FeatureSouthernIslands ] ;


return STI . getFeatureBits ( ) [ zmtarzm :: HasV4TOps ] ;


return STI . getFeatureBits ( ) [ zmtarzm :: Mode64Bit ] ;


bool zmtarzmAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const {

bool zmtarzmAsmBackend :: writeNopData ( raw_ostream & OS , uint64_t Count ) const {


const MCExpr *zmtarzmMCAsmInfo::getExprForFDESymbol(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const {

const MCExpr * zmtarzmMCAsmInfo :: getExprForFDESymbol ( const MCSymbol * Sym , unsigned Encoding , MCStreamer & Streamer ) const {


if ( Encoding & dwarf :: DW_EH_PE_pcrel ) {


MCContext & Ctx = Streamer . getContext ( ) ;


return zmtarzmMCExpr::create(MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_zmtarzm_None, Ctx), #, Ctx);

return zmtarzmMCExpr :: create ( MCSymbolRefExpr :: create ( Sym , MCSymbolRefExpr :: VK_zmtarzm_None , Ctx ) , # , Ctx ) ;

return zmtarzmMCExpr :: create ( MCSymbolRefExpr :: create ( Sym , MCSymbolRefExpr :: VK_zmtarzm_None , Ctx ) , zmtarzmMCExpr :: VK_zmtarzm_R_DISP32 , Ctx ) ;

return zmtarzmMCExpr::create(MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_zmtarzm_None, Ctx), zmtarzmMCExpr::VK_zmtarzm_R_DISP32, Ctx);


return MCAsmInfo::getExprForFDESymbol(Sym, Encoding, Streamer);

return MCAsmInfo :: getExprForFDESymbol ( Sym , Encoding , Streamer ) ;


zmtarzmMCAsmInfo::zmtarzmMCAsmInfo(const Triple &TT) {

zmtarzmMCAsmInfo :: zmtarzmMCAsmInfo ( const Triple & TT ) {


ExceptionsType = ExceptionHandling :: DwarfCFI ;


CodePointerSize = TT . isArch64Bit ( ) ? 8 : 4 ;

CodePointerSize = TT.isArch64Bit() ? 8 : 4;


CalleeSaveStackSlotSize = TT . isArch64Bit ( ) ? 8 : 4 ;

CalleeSaveStackSlotSize = TT.isArch64Bit() ? 8 : 4;


void addCSRSystemRegisterOperands(MCInst &Inst, unsigned N) const {

void addCSRSystemRegisterOperands ( MCInst & Inst , unsigned N ) const {


assert(N == 1 && "Invalid number of operands!");

assert
(
N
==
1
&&
"Invalid number of operands!"
)
;


Inst . addOperand ( MCOperand :: createImm ( SysReg . Encoding ) ) ;


void addExpr(MCInst &Inst, const MCExpr *Expr) const {

void addExpr ( MCInst & Inst , const MCExpr * Expr ) const {


assert(Expr && "Expr shouldn't be null!");

assert
(
Expr
&&
"Expr shouldn't be null!"
)
;


zmtarzmMCExpr::VariantKind VK = zmtarzmMCExpr::VK_zmtarzm_None;

zmtarzmMCExpr :: VariantKind VK = zmtarzmMCExpr :: VK_zmtarzm_None ;


bool IsConstant = evaluateConstantImm(Expr, Imm, VK);

bool IsConstant = evaluateConstantImm ( Expr , Imm , VK ) ;


Inst . addOperand ( MCOperand :: createImm ( Imm ) ) ;


Inst . addOperand ( MCOperand :: createExpr ( Expr ) ) ;


void addFenceArgOperands(MCInst &Inst, unsigned N) const {

void addFenceArgOperands ( MCInst & Inst , unsigned N ) const {


const MCConstantExpr *CE = cast<MCConstantExpr>(getImm());

const MCConstantExpr * CE = cast < MCConstantExpr > ( getImm ( ) ) ;


unsigned EncodedVal = (RegWidth - CE->getValue()) % RegWidth;

unsigned EncodedVal = ( RegWidth - CE -> getValue ( ) ) % RegWidth ;


Inst . addOperand ( MCOperand :: createImm ( # ) ) ;

Inst . addOperand ( MCOperand :: createImm ( EncodedVal ) ) ;


unsigned RegNum = getCondCode() == zmtarzmCC::AL ? 0: zmtarzm::CPSR;

unsigned RegNum = getCondCode ( ) == zmtarzmCC :: AL ? 0 : zmtarzm :: CPSR ;


Inst . addOperand ( MCOperand :: createReg ( RegNum ) ) ;


assert
(
N
==
2
&&
"Invalid number of operands!"
)
;

assert(N == 2 && "Invalid number of operands!");


Inst . addOperand ( MCOperand :: createImm ( unsigned ( getCondCode ( ) ) ) ) ;


void addFRMArgOperands(MCInst &Inst, unsigned N) const {

void addFRMArgOperands ( MCInst & Inst , unsigned N ) const {


assert
(
N
==
1
&&
"Invalid number of operands!"
)
;


Inst . addOperand ( MCOperand :: createImm ( getRoundingMode ( ) ) ) ;


void addImmOperands(MCInst &Inst, unsigned N) const {

void addImmOperands ( MCInst & Inst , unsigned N ) const {


void addRegOperands(MCInst &Inst, unsigned N) const {

void addRegOperands ( MCInst & Inst , unsigned N ) const {


Inst . addOperand ( MCOperand :: createReg ( getReg ( ) ) ) ;


void addVTypeIOperands(MCInst &Inst, unsigned N) const {

void addVTypeIOperands ( MCInst & Inst , unsigned N ) const {


Inst . addOperand ( MCOperand :: createImm ( getVType ( ) ) ) ;


zmtarzmAsmParser(const MCSubtargetInfo &STI, MCAsmParser &Parser, const MCInstrInfo &MII, const MCTargetOptions &Options) : MCTargetAsmParser(Options, STI, MII) {

zmtarzmAsmParser ( const MCSubtargetInfo & STI , MCAsmParser & Parser , const MCInstrInfo & MII , const MCTargetOptions & Options ) : MCTargetAsmParser ( Options , STI , MII ) {


IsILP32 = Options.getABIName() == "ilp32";

IsILP32 = Options . getABIName ( ) == "ilp32" ;


MCAsmParserExtension :: Initialize ( Parser ) ;


MCStreamer &S = getParser().getStreamer();

MCStreamer & S = getParser ( ) . getStreamer ( ) ;


if ( S . getTargetStreamer ( ) == nullptr ) {


Parser . addAliasForDirective ( # , # ) ;

Parser . addAliasForDirective ( ".hword" , ".2byte" ) ;


Parser . addAliasForDirective ( ".word" , ".4byte" ) ;


Parser . addAliasForDirective ( ".dword" , ".8byte" ) ;


Parser . addAliasForDirective ( ".xword" , ".8byte" ) ;


setAvailableFeatures ( ComputeAvailableFeatures ( STI . getFeatureBits ( ) ) ) ;


Parser . addAliasForDirective ( ".half" , ".2byte" ) ;


bool zmtarzmAsmParser::classifySymbolRef(const MCExpr *Expr, MCExpr::VariantKind &Kind,) {

bool zmtarzmAsmParser :: classifySymbolRef ( const MCExpr * Expr , MCExpr :: VariantKind & Kind , ) {


DarwinRefKind = MCSymbolRefExpr :: VK_zmtarzm_None ;


if (const zmtarzmMCExpr *AE = dyn_cast<zmtarzmMCExpr>(Expr)) {

if ( const zmtarzmMCExpr * AE = dyn_cast < zmtarzmMCExpr > ( Expr ) ) {


const MCSymbolRefExpr *SE = dyn_cast<MCSymbolRefExpr>(Expr);

const MCSymbolRefExpr * SE = dyn_cast < MCSymbolRefExpr > ( Expr ) ;


bool Relocatable = Expr->evaluateAsRelocatable(Res, nullptr, nullptr);

bool Relocatable = Expr -> evaluateAsRelocatable ( Res , nullptr , nullptr ) ;


DarwinRefKind = Res . getSymA ( ) -> getKind ( ) ;


return ELFRefKind == zmtarzmMCExpr::VK_INVALID || DarwinRefKind == MCSymbolRefExpr::VK_zmtarzm_None;

return ELFRefKind == zmtarzmMCExpr :: VK_INVALID || DarwinRefKind == MCSymbolRefExpr :: VK_zmtarzm_None ;


static MCRegister convertFPR64ToFPR16(MCRegister Reg) {

static MCRegister convertFPR64ToFPR16 ( MCRegister Reg ) {


assert(Reg >= # && Reg <= # && "Invalid register");

assert
(
Reg
>=
#
&&
Reg
<=
#
&&
"Invalid register"
)
;

assert
(
Reg
>=
zmtarzm
::
F0_32
&&
Reg
<=
zmtarzm
::
F31_32
&&
"Invalid register"
)
;

assert(Reg >= zmtarzm::F0_32 && Reg <= zmtarzm::F31_32 && "Invalid register");


return Reg - zmtarzm :: F0_32 + zmtarzm :: F0_64 ;

return Reg - zmtarzm::F0_32 + zmtarzm::F0_64;


assert
(
Reg
>=
zmtarzm
::
F0
&&
Reg
<=
zmtarzm
::
F31
&&
"Invalid register"
)
;

assert(Reg >= zmtarzm::F0 && Reg <= zmtarzm::F31 && "Invalid register");


return Reg - zmtarzm :: F0 + zmtarzm :: F0_64 ;

return Reg - zmtarzm::F0 + zmtarzm::F0_64;


static MCRegister convertFPR64ToFPR32(MCRegister Reg) {

static MCRegister convertFPR64ToFPR32 ( MCRegister Reg ) {


static std::unique_ptr<zmtarzmOperand> createImm(const MCExpr *Val, SMLoc S, SMLoc E, bool IsRV64) {

static std :: unique_ptr < zmtarzmOperand > createImm ( const MCExpr * Val , SMLoc S , SMLoc E , bool IsRV64 ) {


auto Op = std::make_unique<zmtarzmOperand>(KindTy::Immediate);

auto Op = std :: make_unique < zmtarzmOperand > ( KindTy :: Immediate ) ;


static std::unique_ptr<zmtarzmOperand> createReg(unsigned RegNo, SMLoc S, SMLoc E, bool IsRV64) {

static std :: unique_ptr < zmtarzmOperand > createReg ( unsigned RegNo , SMLoc S , SMLoc E , bool IsRV64 ) {


auto Op = std::make_unique<zmtarzmOperand>(KindTy::Register);

auto Op = std :: make_unique < zmtarzmOperand > ( KindTy :: Register ) ;


static std::unique_ptr<zmtarzmOperand> createSysReg(StringRef Str, SMLoc S, unsigned Encoding, bool IsRV64) {

static std :: unique_ptr < zmtarzmOperand > createSysReg ( StringRef Str , SMLoc S , unsigned Encoding , bool IsRV64 ) {


auto Op = std::make_unique<zmtarzmOperand>(KindTy::SystemRegister);

auto Op = std :: make_unique < zmtarzmOperand > ( KindTy :: SystemRegister ) ;


Op -> SysReg . Length = Str . size ( ) ;


static std::unique_ptr<zmtarzmOperand> createToken(StringRef Str, SMLoc S, bool IsRV64) {

static std :: unique_ptr < zmtarzmOperand > createToken ( StringRef Str , SMLoc S , bool IsRV64 ) {


auto Op = std::make_unique<zmtarzmOperand>(KindTy::Token);

auto Op = std :: make_unique < zmtarzmOperand > ( KindTy :: Token ) ;


static std::unique_ptr<zmtarzmOperand> createVType(unsigned VTypeI, SMLoc S,  bool IsRV64) {

static std :: unique_ptr < zmtarzmOperand > createVType ( unsigned VTypeI , SMLoc S , bool IsRV64 ) {


auto Op = std::make_unique<zmtarzmOperand>(KindTy::VType);

auto Op = std :: make_unique < zmtarzmOperand > ( KindTy :: VType ) ;


std::unique_ptr<zmtarzmOperand> zmtarzmAsmParser::defaultMaskRegOp() const {

std :: unique_ptr < zmtarzmOperand > zmtarzmAsmParser :: defaultMaskRegOp ( ) const {


return zmtarzmOperand::createImm(this, 0, SMLoc(), zmtarzmOperand::ImmTyDLC);

return zmtarzmOperand :: createImm ( this , 0 , SMLoc ( ) , zmtarzmOperand :: ImmTyDLC ) ;


void zmtarzmAsmParser::emitToStreamer(MCStreamer &S, const MCInst &Inst) {

void zmtarzmAsmParser :: emitToStreamer ( MCStreamer & S , const MCInst & Inst ) {


Res = compressInst(CInst, Inst, getSTI(), S.getContext());

Res = compressInst ( CInst , Inst , getSTI ( ) , S . getContext ( ) ) ;


zmtarzmNumInstrsCompressed = zmtarzmNumInstrsCompressed + 1;

zmtarzmNumInstrsCompressed = zmtarzmNumInstrsCompressed + 1 ;


S.emitInstruction((Res ? CInst : Inst), getSTI());

S . emitInstruction ( ( Res ? CInst : Inst ) , getSTI ( ) ) ;


static bool evaluateConstantImm(const MCExpr *Expr, int64_t &Imm, zmtarzmMCExpr::VariantKind &VK) const {

static bool evaluateConstantImm ( const MCExpr * Expr , int64_t & Imm , zmtarzmMCExpr :: VariantKind & VK ) const {


if (auto *RE = dyn_cast<zmtarzmMCExpr>(Expr)) {

if ( auto * RE = dyn_cast < zmtarzmMCExpr > ( Expr ) ) {


return RE -> evaluateAsConstant ( Imm ) ;


if (auto CE = dyn_cast<MCConstantExpr>(Expr)) {

if ( auto CE = dyn_cast < MCConstantExpr > ( Expr ) ) {


bool zmtarzmAsmParser::generateImmOutOfRangeError(OperandVector &Operands, uint64_t ErrorInfo, int64_t Lower, int64_t Upper, Twine Msg = "immediate must be an integer in the range") {


SMLoc ErrorLoc = ((zmtarzmOperand &)*Operands[ErrorInfo]).getStartLoc();

SMLoc ErrorLoc = ( ( zmtarzmOperand & ) * Operands [ ErrorInfo ] ) . getStartLoc ( ) ;


return Error(ErrorLoc, Msg + " [" + Twine(Lower) + ", " + Twine(Upper) + "]");

return
Error
(
ErrorLoc
,
Msg
+
" ["
+
Twine
(
Lower
)
+
", "
+
Twine
(
Upper
)
+
"]"
)
;


bool getFeatureBits ( uint64_t Feature ) {


return getSTI ( ) . getFeatureBits ( ) [ Feature ] ;


assert(Kind == KindTy::Immediate && "Invalid type access!");

assert
(
Kind
==
KindTy
::
Immediate
&&
"Invalid type access!"
)
;


return getParser ( ) . getTok ( ) . getLoc ( ) ;


assert(Kind == KindTy::Register && "Invalid type access!");

assert
(
Kind
==
KindTy
::
Register
&&
"Invalid type access!"
)
;


zmtarzmFPRndMode::RoundingMode getRoundingMode() const {

zmtarzmFPRndMode :: RoundingMode getRoundingMode ( ) const {


return TargetSubtargetInfo :: ANTIDEP_ALL ;


return (MI.getDesc().TSFlags >> zmtarzmII::AddrModePos) & zmtarzmII::AddrModeMask;

return ( MI . getDesc ( ) . TSFlags >> zmtarzmII :: AddrModePos ) & zmtarzmII :: AddrModeMask ;


assert(Kind == KindTy::SystemRegister && "Invalid type access!");

assert
(
Kind
==
KindTy
::
SystemRegister
&&
"Invalid type access!"
)
;


return StringRef ( SysReg . Data , SysReg . Length ) ;


zmtarzmTargetStreamer & getTargetStreamer ( ) {


MCTargetStreamer &TS = *getParser().getStreamer().getTargetStreamer();

MCTargetStreamer & TS = * getParser ( ) . getStreamer ( ) . getTargetStreamer ( ) ;


return static_cast < zmtarzmTargetStreamer & > ( TS ) ;


assert(Kind == KindTy::Token && "Invalid type access!");

assert
(
Kind
==
KindTy
::
Token
&&
"Invalid type access!"
)
;


assert(Kind == KindTy::VType && "Invalid type access!");

assert
(
Kind
==
KindTy
::
VType
&&
"Invalid type access!"
)
;


template <int N> bool isBareSimmNLsb0() const {

template < int N > bool isBareSimmNLsb0 ( ) const {


zmtarzmMCExpr::VariantKind VK = zmtarzmMCExpr::VK_zmtarzm_None;

zmtarzmMCExpr :: VariantKind VK = zmtarzmMCExpr :: VK_zmtarzm_None ;


bool IsConstantImm = evaluateConstantImm(getImm(), Imm, VK);

bool IsConstantImm = evaluateConstantImm ( getImm ( ) , Imm , VK ) ;


IsValid = isShiftedInt < N - 1 , 1 > ( Imm ) ;


IsValid = zmtarzmAsmParser::classifySymbolRef(getImm(), VK);

IsValid = zmtarzmAsmParser :: classifySymbolRef ( getImm ( ) , VK ) ;


return IsValid && VK == zmtarzmMCExpr::VK_zmtarzm_None;

return IsValid && VK == zmtarzmMCExpr :: VK_zmtarzm_None ;


if (evaluateConstantImm(getImm(), Imm, VK)) {

if ( evaluateConstantImm ( getImm ( ) , Imm , VK ) ) {


return pred ( Imm ) && VK == zmtarzmMCExpr :: VK_zmtarzm_None ;

return pred(Imm) && VK == zmtarzmMCExpr::VK_zmtarzm_None;


if (!evaluateConstantImm(getImm(), Imm, VK)) {

if ( ! evaluateConstantImm ( getImm ( ) , Imm , VK ) ) {


return zmtarzmAsmParser :: classifySymbolRef ( getImm ( ) , VK ) && VK == zmtarzmMCExpr :: VK_zmtarzm_None ;

return zmtarzmAsmParser::classifySymbolRef(getImm(), VK) && VK == zmtarzmMCExpr::VK_zmtarzm_None;


return isShiftedUInt < num , shift > ( Imm ) ;


return Kind == KindTy :: SystemRegister ;


const MCConstantExpr *ConstExpr = dyn_cast<MCConstantExpr>(Imm.Value);

const MCConstantExpr * ConstExpr = dyn_cast < MCConstantExpr > ( Imm . Value ) ;


int64_t Value = ConstExpr -> getValue ( ) ;


return ( ( Value & ~ 0xffff ) == 0xffff0000 ) ;

return ((Value & ~0xffff) == 0xffff0000);


if (const MCConstantExpr *CE = dyn_cast<MCConstantExpr>(Imm.Val)) {

if ( const MCConstantExpr * CE = dyn_cast < MCConstantExpr > ( Imm . Val ) ) {


if (const auto *ConstExpr = dyn_cast<MCConstantExpr>(Imm.Val)) {

if ( const auto * ConstExpr = dyn_cast < MCConstantExpr > ( Imm . Val ) ) {


const MCConstantExpr *MCE = dyn_cast<MCConstantExpr>(getImm());

const MCConstantExpr * MCE = dyn_cast < MCConstantExpr > ( getImm ( ) ) ;


const MCConstantExpr *CE = dyn_cast<MCConstantExpr>(getImm());

const MCConstantExpr * CE = dyn_cast < MCConstantExpr > ( getImm ( ) ) ;


return isShiftedInt < 7 , 1 > ( getConstantImm ( ) ) ;


return isa < MCSymbolRefExpr > ( getImm ( ) ) ;


assert(N > 0 && "Branch target immediate cannot be 0 bits!");


return zmtarzm_AM :: isNEONi32splat ( ~ Value ) ;


return Kind == KindTy::Register && zmtarzmMCRegisterClasses[zmtarzm::GPRRegClassID].contains(Reg.RegNum);

return Kind == KindTy :: Register && zmtarzmMCRegisterClasses [ zmtarzm :: GPRRegClassID ] . contains ( Reg . RegNum ) ;


zmtarzmMCExpr :: VariantKind VK = zmtarzmMCExpr :: VK_zmtarzm_None ;


if ( evaluateConstantImm ( getImm ( ) , Imm , VK ) ) {


return isInt < 10 > ( Imm ) || VK == zmtarzmMCExpr :: VK_zmtarzm_None ;

return isInt<10>(Imm) || VK == zmtarzmMCExpr::VK_zmtarzm_None;


return zmtarzmAsmParser :: classifySymbolRef ( getImm ( ) , VK , Imm ) ;

return zmtarzmAsmParser::classifySymbolRef(getImm(), VK, Imm);


zmtarzmMCExpr::VariantKind VK = zmtarzmMCExpr::VK_zmtarzm_None;


return isShiftedUInt < num , shift > ( Imm ) ;


return pred ( Imm ) && VK == zmtarzmMCExpr :: VK_zmtarzm_None ;


return zmtarzmAsmParser :: classifySymbolRef ( getImm ( ) , VK ) && VK == zmtarzmMCExpr :: VK_zmtarzm_None ;


return getSTI ( ) . hasFeature ( zmtarzm :: Mode32Bit ) ;


return getSTI ( ) . hasFeature ( zmtarzm :: FeatureRAS ) ;


return getSTI ( ) . hasFeature ( zmtarzm :: Mode64Bit ) ;


return getSTI ( ) . hasFeature ( zmtarzm :: FeatureD16 ) ;