ldrsw_lit.xml */
| 15009 | |
| 15010 | /* ldrsw_lit.xml */ |
| 15011 | int LDRSW_lit(context *ctx, Instruction *instr) |
| 15012 | { |
| 15013 | int rc = DECODE_STATUS_UNMATCHED; |
| 15014 | /* class iclass_literal */ |
| 15015 | /* opc=10|011|V=0|00|imm19=xxxxxxxxxxxxxxxxxxx|Rt=xxxxx */ |
| 15016 | if((INSWORD & 0xFF000000)==0x98000000) { |
| 15017 | decode_fields32(ENC_LDRSW_64_LOADLIT, ctx, instr); |
| 15018 | ctx->t = UINT(ctx->Rt); |
| 15019 | ctx->memop = MemOp_LOAD; |
| 15020 | ctx->signed_ = FALSE; |
| 15021 | if(!ctx->opc) { |
| 15022 | ctx->size = 4; |
| 15023 | } |
| 15024 | else if(ctx->opc==1) { |
| 15025 | ctx->size = 8; |
| 15026 | } |
| 15027 | else if(ctx->opc==2) { |
| 15028 | ctx->size = 4; |
| 15029 | ctx->signed_ = TRUE; |
| 15030 | } |
| 15031 | else if(ctx->opc==3) { |
| 15032 | ctx->memop = MemOp_PREFETCH; |
| 15033 | } |
| 15034 | ctx->offset = SignExtend((ctx->imm19<<2),21); |
| 15035 | ctx->tag_checked = FALSE; |
| 15036 | OK(ENC_LDRSW_64_LOADLIT); |
| 15037 | } |
| 15038 | return rc; |
| 15039 | } |
| 15040 | |
| 15041 | /* ldrsw_reg.xml */ |
| 15042 | int LDRSW_reg(context *ctx, Instruction *instr) |
no test coverage detected