stlr.xml */
| 24899 | |
| 24900 | /* stlr.xml */ |
| 24901 | int STLR(context *ctx, Instruction *instr) |
| 24902 | { |
| 24903 | int rc = DECODE_STATUS_UNMATCHED; |
| 24904 | /* class iclass_base_register */ |
| 24905 | /* size=1x|001000|o2=1|L=0|o1=0|Rs=(1)(1)(1)(1)(1)|o0=1|Rt2=(1)(1)(1)(1)(1)|Rn=xxxxx|Rt=xxxxx */ |
| 24906 | if((INSWORD & 0xBFE08000)==0x88808000) { |
| 24907 | decode_fields32(ENC_STLR_SL32_LDSTORD, ctx, instr); |
| 24908 | ctx->n = UINT(ctx->Rn); |
| 24909 | ctx->t = UINT(ctx->Rt); |
| 24910 | ctx->t2 = UINT(ctx->Rt2); |
| 24911 | ctx->s = UINT(ctx->Rs); |
| 24912 | ctx->acctype = (ctx->o0==0) ? AccType_LIMITEDORDERED : AccType_ORDERED; |
| 24913 | ctx->memop = (ctx->L==1) ? MemOp_LOAD : MemOp_STORE; |
| 24914 | ctx->elsize = (8) << (UINT(ctx->size)); |
| 24915 | ctx->regsize = (ctx->elsize==0x40) ? 0x40 : 0x20; |
| 24916 | ctx->datasize = ctx->elsize; |
| 24917 | ctx->tag_checked = ctx->n!=0x1f; |
| 24918 | if(ctx->size==2) OK(ENC_STLR_SL32_LDSTORD); |
| 24919 | if(ctx->size==3) OK(ENC_STLR_SL64_LDSTORD); |
| 24920 | } |
| 24921 | return rc; |
| 24922 | } |
| 24923 | |
| 24924 | /* stlrb.xml */ |
| 24925 | int STLRB(context *ctx, Instruction *instr) |
no test coverage detected