MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / STG

Function STG

arch/arm64/disassembler/decode2.c:24709–24758  ·  view source on GitHub ↗

stg.xml */

Source from the content-addressed store, hash-verified

24707
24708/* stg.xml */
24709int STG(context *ctx, Instruction *instr)
24710{
24711 int rc = DECODE_STATUS_UNMATCHED;
24712 /* class iclass_post_indexed */
24713 /* 11011001|opc=00|1|imm9=xxxxxxxxx|op2=01|Xn=xxxxx|Xt=xxxxx */
24714 if((INSWORD & 0xFFE00C00)==0xD9200400) {
24715 decode_fields32(ENC_STG_64SPOST_LDSTTAGS, ctx, instr);
24716 if(!HaveMTEExt()) {
24717 UNDEFINED;
24718 }
24719 ctx->n = UINT(ctx->Xn);
24720 ctx->t = UINT(ctx->Xt);
24721 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24722 ctx->writeback = TRUE;
24723 ctx->postindex = TRUE;
24724 ctx->zero_data = FALSE;
24725 OK(ENC_STG_64SPOST_LDSTTAGS);
24726 }
24727 /* class iclass_pre_indexed */
24728 /* 11011001|opc=00|1|imm9=xxxxxxxxx|op2=11|Xn=xxxxx|Xt=xxxxx */
24729 if((INSWORD & 0xFFE00C00)==0xD9200C00) {
24730 decode_fields32(ENC_STG_64SPRE_LDSTTAGS, ctx, instr);
24731 if(!HaveMTEExt()) {
24732 UNDEFINED;
24733 }
24734 ctx->n = UINT(ctx->Xn);
24735 ctx->t = UINT(ctx->Xt);
24736 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24737 ctx->writeback = TRUE;
24738 ctx->postindex = FALSE;
24739 ctx->zero_data = FALSE;
24740 OK(ENC_STG_64SPRE_LDSTTAGS);
24741 }
24742 /* class iclass_signed_scaled_offset */
24743 /* 11011001|opc=00|1|imm9=xxxxxxxxx|op2=10|Xn=xxxxx|Xt=xxxxx */
24744 if((INSWORD & 0xFFE00C00)==0xD9200800) {
24745 decode_fields32(ENC_STG_64SOFFSET_LDSTTAGS, ctx, instr);
24746 if(!HaveMTEExt()) {
24747 UNDEFINED;
24748 }
24749 ctx->n = UINT(ctx->Xn);
24750 ctx->t = UINT(ctx->Xt);
24751 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24752 ctx->writeback = FALSE;
24753 ctx->postindex = FALSE;
24754 ctx->zero_data = FALSE;
24755 OK(ENC_STG_64SOFFSET_LDSTTAGS);
24756 }
24757 return rc;
24758}
24759
24760/* stgm.xml */
24761int STGM(context *ctx, Instruction *instr)

Callers 1

decode_iclass_ldsttagsFunction · 0.85

Calls 2

decode_fields32Function · 0.85
SignExtendFunction · 0.85

Tested by

no test coverage detected