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

Function STGP

arch/arm64/disassembler/decode2.c:24779–24828  ·  view source on GitHub ↗

stgp.xml */

Source from the content-addressed store, hash-verified

24777
24778/* stgp.xml */
24779int STGP(context *ctx, Instruction *instr)
24780{
24781 int rc = DECODE_STATUS_UNMATCHED;
24782 /* class iclass_post_indexed */
24783 /* opc=01|101|V=0|001|L=0|simm7=xxxxxxx|Xt2=xxxxx|Xn=xxxxx|Xt=xxxxx */
24784 if((INSWORD & 0xFFC00000)==0x68800000) {
24785 decode_fields32(ENC_STGP_64_LDSTPAIR_POST, ctx, instr);
24786 if(!HaveMTEExt()) {
24787 UNDEFINED;
24788 }
24789 ctx->n = UINT(ctx->Xn);
24790 ctx->t = UINT(ctx->Xt);
24791 ctx->t2 = UINT(ctx->Xt2);
24792 ctx->offset = LSL(SignExtend(ctx->simm7,7),LOG2_TAG_GRANULE);
24793 ctx->writeback = TRUE;
24794 ctx->postindex = TRUE;
24795 OK(ENC_STGP_64_LDSTPAIR_POST);
24796 }
24797 /* class iclass_pre_indexed */
24798 /* opc=01|101|V=0|011|L=0|simm7=xxxxxxx|Xt2=xxxxx|Xn=xxxxx|Xt=xxxxx */
24799 if((INSWORD & 0xFFC00000)==0x69800000) {
24800 decode_fields32(ENC_STGP_64_LDSTPAIR_PRE, ctx, instr);
24801 if(!HaveMTEExt()) {
24802 UNDEFINED;
24803 }
24804 ctx->n = UINT(ctx->Xn);
24805 ctx->t = UINT(ctx->Xt);
24806 ctx->t2 = UINT(ctx->Xt2);
24807 ctx->offset = LSL(SignExtend(ctx->simm7,7),LOG2_TAG_GRANULE);
24808 ctx->writeback = TRUE;
24809 ctx->postindex = FALSE;
24810 OK(ENC_STGP_64_LDSTPAIR_PRE);
24811 }
24812 /* class iclass_signed_scaled_offset */
24813 /* opc=01|101|V=0|010|L=0|simm7=xxxxxxx|Xt2=xxxxx|Xn=xxxxx|Xt=xxxxx */
24814 if((INSWORD & 0xFFC00000)==0x69000000) {
24815 decode_fields32(ENC_STGP_64_LDSTPAIR_OFF, ctx, instr);
24816 if(!HaveMTEExt()) {
24817 UNDEFINED;
24818 }
24819 ctx->n = UINT(ctx->Xn);
24820 ctx->t = UINT(ctx->Xt);
24821 ctx->t2 = UINT(ctx->Xt2);
24822 ctx->offset = LSL(SignExtend(ctx->simm7,7),LOG2_TAG_GRANULE);
24823 ctx->writeback = FALSE;
24824 ctx->postindex = FALSE;
24825 OK(ENC_STGP_64_LDSTPAIR_OFF);
24826 }
24827 return rc;
24828}
24829
24830/* stllr.xml */
24831int STLLR(context *ctx, Instruction *instr)

Callers 3

Calls 2

decode_fields32Function · 0.85
SignExtendFunction · 0.85

Tested by

no test coverage detected