st2g.xml */
| 24014 | |
| 24015 | /* st2g.xml */ |
| 24016 | int 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 */ |
| 24068 | int ST2_advsimd_mult(context *ctx, Instruction *instr) |
no test coverage detected