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

Function ST2G

arch/arm64/disassembler/decode2.c:24016–24065  ·  view source on GitHub ↗

st2g.xml */

Source from the content-addressed store, hash-verified

24014
24015/* st2g.xml */
24016int ST2G(context *ctx, Instruction *instr)
24017{
24018 int rc = DECODE_STATUS_UNMATCHED;
24019 /* class iclass_post_indexed */
24020 /* 11011001|opc=10|1|imm9=xxxxxxxxx|op2=01|Xn=xxxxx|Xt=xxxxx */
24021 if((INSWORD & 0xFFE00C00)==0xD9A00400) {
24022 decode_fields32(ENC_ST2G_64SPOST_LDSTTAGS, ctx, instr);
24023 if(!HaveMTEExt()) {
24024 UNDEFINED;
24025 }
24026 ctx->n = UINT(ctx->Xn);
24027 ctx->t = UINT(ctx->Xt);
24028 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24029 ctx->writeback = TRUE;
24030 ctx->postindex = TRUE;
24031 ctx->zero_data = FALSE;
24032 OK(ENC_ST2G_64SPOST_LDSTTAGS);
24033 }
24034 /* class iclass_pre_indexed */
24035 /* 11011001|opc=10|1|imm9=xxxxxxxxx|op2=11|Xn=xxxxx|Xt=xxxxx */
24036 if((INSWORD & 0xFFE00C00)==0xD9A00C00) {
24037 decode_fields32(ENC_ST2G_64SPRE_LDSTTAGS, ctx, instr);
24038 if(!HaveMTEExt()) {
24039 UNDEFINED;
24040 }
24041 ctx->n = UINT(ctx->Xn);
24042 ctx->t = UINT(ctx->Xt);
24043 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24044 ctx->writeback = TRUE;
24045 ctx->postindex = FALSE;
24046 ctx->zero_data = FALSE;
24047 OK(ENC_ST2G_64SPRE_LDSTTAGS);
24048 }
24049 /* class iclass_signed_scaled_offset */
24050 /* 11011001|opc=10|1|imm9=xxxxxxxxx|op2=10|Xn=xxxxx|Xt=xxxxx */
24051 if((INSWORD & 0xFFE00C00)==0xD9A00800) {
24052 decode_fields32(ENC_ST2G_64SOFFSET_LDSTTAGS, ctx, instr);
24053 if(!HaveMTEExt()) {
24054 UNDEFINED;
24055 }
24056 ctx->n = UINT(ctx->Xn);
24057 ctx->t = UINT(ctx->Xt);
24058 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
24059 ctx->writeback = FALSE;
24060 ctx->postindex = FALSE;
24061 ctx->zero_data = FALSE;
24062 OK(ENC_ST2G_64SOFFSET_LDSTTAGS);
24063 }
24064 return rc;
24065}
24066
24067/* st2_advsimd_mult.xml */
24068int ST2_advsimd_mult(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