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

Function STZ2G

arch/arm64/disassembler/decode2.c:26867–26916  ·  view source on GitHub ↗

stz2g.xml */

Source from the content-addressed store, hash-verified

26865
26866/* stz2g.xml */
26867int STZ2G(context *ctx, Instruction *instr)
26868{
26869 int rc = DECODE_STATUS_UNMATCHED;
26870 /* class iclass_post_indexed */
26871 /* 11011001|opc=11|1|imm9=xxxxxxxxx|op2=01|Xn=xxxxx|Xt=xxxxx */
26872 if((INSWORD & 0xFFE00C00)==0xD9E00400) {
26873 decode_fields32(ENC_STZ2G_64SPOST_LDSTTAGS, ctx, instr);
26874 if(!HaveMTEExt()) {
26875 UNDEFINED;
26876 }
26877 ctx->n = UINT(ctx->Xn);
26878 ctx->t = UINT(ctx->Xt);
26879 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
26880 ctx->writeback = TRUE;
26881 ctx->postindex = TRUE;
26882 ctx->zero_data = TRUE;
26883 OK(ENC_STZ2G_64SPOST_LDSTTAGS);
26884 }
26885 /* class iclass_pre_indexed */
26886 /* 11011001|opc=11|1|imm9=xxxxxxxxx|op2=11|Xn=xxxxx|Xt=xxxxx */
26887 if((INSWORD & 0xFFE00C00)==0xD9E00C00) {
26888 decode_fields32(ENC_STZ2G_64SPRE_LDSTTAGS, ctx, instr);
26889 if(!HaveMTEExt()) {
26890 UNDEFINED;
26891 }
26892 ctx->n = UINT(ctx->Xn);
26893 ctx->t = UINT(ctx->Xt);
26894 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
26895 ctx->writeback = TRUE;
26896 ctx->postindex = FALSE;
26897 ctx->zero_data = TRUE;
26898 OK(ENC_STZ2G_64SPRE_LDSTTAGS);
26899 }
26900 /* class iclass_signed_scaled_offset */
26901 /* 11011001|opc=11|1|imm9=xxxxxxxxx|op2=10|Xn=xxxxx|Xt=xxxxx */
26902 if((INSWORD & 0xFFE00C00)==0xD9E00800) {
26903 decode_fields32(ENC_STZ2G_64SOFFSET_LDSTTAGS, ctx, instr);
26904 if(!HaveMTEExt()) {
26905 UNDEFINED;
26906 }
26907 ctx->n = UINT(ctx->Xn);
26908 ctx->t = UINT(ctx->Xt);
26909 ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE);
26910 ctx->writeback = FALSE;
26911 ctx->postindex = FALSE;
26912 ctx->zero_data = TRUE;
26913 OK(ENC_STZ2G_64SOFFSET_LDSTTAGS);
26914 }
26915 return rc;
26916}
26917
26918/* stzg.xml */
26919int STZG(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