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

Function LDAPURSW

arch/arm64/disassembler/decode2.c:13276–13335  ·  view source on GitHub ↗

ldapursw.xml */

Source from the content-addressed store, hash-verified

13274
13275/* ldapursw.xml */
13276int LDAPURSW(context *ctx, Instruction *instr)
13277{
13278 int rc = DECODE_STATUS_UNMATCHED;
13279 /* class iclass_base_plus_offset */
13280 /* size=10|011001|opc=10|0|imm9=xxxxxxxxx|00|Rn=xxxxx|Rt=xxxxx */
13281 if((INSWORD & 0xFFE00C00)==0x99800000) {
13282 decode_fields32(ENC_LDAPURSW_64_LDAPSTL_UNSCALED, ctx, instr);
13283 ctx->wback = FALSE;
13284 ctx->postindex = FALSE;
13285 ctx->scale = UINT(ctx->size);
13286 ctx->offset = SignExtend(ctx->imm9,9);
13287 OK(ENC_LDAPURSW_64_LDAPSTL_UNSCALED);
13288 }
13289 /* post-decode pcode */
13290 ctx->n = UINT(ctx->Rn);
13291 ctx->t = UINT(ctx->Rt);
13292 ctx->acctype = AccType_ORDERED;
13293 if(SLICE(ctx->opc,1,1)==0) {
13294 if(SLICE(ctx->opc,0,0)==1) {
13295 ctx->memop = MemOp_LOAD;
13296 };
13297 if(ctx->size==3) {
13298 ctx->regsize = 0x40;
13299 };
13300 ctx->signed_ = FALSE;
13301 }
13302 else {
13303 if(ctx->size==3) {
13304 ctx->memop = MemOp_PREFETCH;
13305 if(SLICE(ctx->opc,0,0)==1) {
13306 UNDEFINED;
13307 }
13308 }
13309 else {
13310 ctx->memop = MemOp_LOAD;
13311 if(ctx->size==2 && SLICE(ctx->opc,0,0)==1) {
13312 UNDEFINED;
13313 }
13314 if(SLICE(ctx->opc,0,0)==1) {
13315 ctx->regsize = 0x20;
13316 };
13317 ctx->signed_ = TRUE;
13318 }
13319 }
13320 ctx->datasize = (8) << (ctx->scale);
13321 ctx->tag_checked = ctx->memop!=MemOp_PREFETCH && (ctx->wback || ctx->n!=0x1f);
13322 ctx->wb_unknown = FALSE;
13323 ctx->rt_unknown = FALSE;
13324 if(ctx->memop==MemOp_LOAD && ctx->wback && ctx->n==ctx->t && ctx->n!=0x1f) {
13325 // assignment from ConstrainUnpredictable()
13326 // assert
13327 // switch on constraint
13328 }
13329 if(ctx->memop==MemOp_STORE && ctx->wback && ctx->n==ctx->t && ctx->n!=0x1f) {
13330 // assignment from ConstrainUnpredictable()
13331 // assert
13332 // switch on constraint
13333 }

Callers 1

Calls 2

decode_fields32Function · 0.85
SignExtendFunction · 0.85

Tested by

no test coverage detected