stzg.xml */
| 26917 | |
| 26918 | /* stzg.xml */ |
| 26919 | int STZG(context *ctx, Instruction *instr) |
| 26920 | { |
| 26921 | int rc = DECODE_STATUS_UNMATCHED; |
| 26922 | /* class iclass_post_indexed */ |
| 26923 | /* 11011001|opc=01|1|imm9=xxxxxxxxx|op2=01|Xn=xxxxx|Xt=xxxxx */ |
| 26924 | if((INSWORD & 0xFFE00C00)==0xD9600400) { |
| 26925 | decode_fields32(ENC_STZG_64SPOST_LDSTTAGS, ctx, instr); |
| 26926 | if(!HaveMTEExt()) { |
| 26927 | UNDEFINED; |
| 26928 | } |
| 26929 | ctx->n = UINT(ctx->Xn); |
| 26930 | ctx->t = UINT(ctx->Xt); |
| 26931 | ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE); |
| 26932 | ctx->writeback = TRUE; |
| 26933 | ctx->postindex = TRUE; |
| 26934 | ctx->zero_data = TRUE; |
| 26935 | OK(ENC_STZG_64SPOST_LDSTTAGS); |
| 26936 | } |
| 26937 | /* class iclass_pre_indexed */ |
| 26938 | /* 11011001|opc=01|1|imm9=xxxxxxxxx|op2=11|Xn=xxxxx|Xt=xxxxx */ |
| 26939 | if((INSWORD & 0xFFE00C00)==0xD9600C00) { |
| 26940 | decode_fields32(ENC_STZG_64SPRE_LDSTTAGS, ctx, instr); |
| 26941 | if(!HaveMTEExt()) { |
| 26942 | UNDEFINED; |
| 26943 | } |
| 26944 | ctx->n = UINT(ctx->Xn); |
| 26945 | ctx->t = UINT(ctx->Xt); |
| 26946 | ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE); |
| 26947 | ctx->writeback = TRUE; |
| 26948 | ctx->postindex = FALSE; |
| 26949 | ctx->zero_data = TRUE; |
| 26950 | OK(ENC_STZG_64SPRE_LDSTTAGS); |
| 26951 | } |
| 26952 | /* class iclass_signed_scaled_offset */ |
| 26953 | /* 11011001|opc=01|1|imm9=xxxxxxxxx|op2=10|Xn=xxxxx|Xt=xxxxx */ |
| 26954 | if((INSWORD & 0xFFE00C00)==0xD9600800) { |
| 26955 | decode_fields32(ENC_STZG_64SOFFSET_LDSTTAGS, ctx, instr); |
| 26956 | if(!HaveMTEExt()) { |
| 26957 | UNDEFINED; |
| 26958 | } |
| 26959 | ctx->n = UINT(ctx->Xn); |
| 26960 | ctx->t = UINT(ctx->Xt); |
| 26961 | ctx->offset = LSL(SignExtend(ctx->imm9,9),LOG2_TAG_GRANULE); |
| 26962 | ctx->writeback = FALSE; |
| 26963 | ctx->postindex = FALSE; |
| 26964 | ctx->zero_data = TRUE; |
| 26965 | OK(ENC_STZG_64SOFFSET_LDSTTAGS); |
| 26966 | } |
| 26967 | return rc; |
| 26968 | } |
| 26969 | |
| 26970 | /* stzgm.xml */ |
| 26971 | int STZGM(context *ctx, Instruction *instr) |
no test coverage detected